<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-03T23:09:46.327721" 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-03T23:09:46.759889" 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-03T23:09:46.759482" elapsed="0.000445"/>
</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-03T23:09:46.762212" level="INFO">Length is 0.</msg>
<msg time="2026-10-03T23:09:46.762325" 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-03T23:09:46.761637" elapsed="0.000725"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T23:09:46.762507" elapsed="0.000390"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-03T23:09:46.763720" level="INFO">Logging into '10.30.171.213:22' as 'jenkins'.</msg>
<msg time="2026-10-03T23:09:47.188359" 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  3 23:09:24 UTC 2026

  System load:  0.2                Processes:             108
  Usage of /:   20.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.213
  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

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


[?2004h[jenkins@releng-51161-110-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-03T23:09:46.763472" elapsed="0.425033"/>
</kw>
<msg time="2026-10-03T23:09:47.188615" 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-03T23:09:46.763098" elapsed="0.425613"/>
</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-03T23:09:46.761201" elapsed="0.427647"/>
</kw>
<msg time="2026-10-03T23:09:47.188915" 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-03T23:09:46.760674" elapsed="0.428307"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-10-03T23:09:46.760124" elapsed="0.429002"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-10-03T23:09:47.189211" elapsed="0.000054"/>
</return>
<msg time="2026-10-03T23:09:47.189459" 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-03T23:09:46.759017" elapsed="0.430477"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:47.190323" 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-03T23:09:47.189770" elapsed="0.000625"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-03T23:09:47.193959" 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-03T23:09:47.190606" elapsed="0.003477"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Read Until Prompt" owner="SSHLibrary">
<msg time="2026-10-03T23:09:47.731568" 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     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0100 8053k  100 8053k    0     0  15.5M      0 --:--:-- --:--:-- --:--:-- 35.9M
[?2004h[jenkins@releng-51161-110-1-docker-0 ~]&gt;</msg>
<doc>Consumes and returns the server output until the prompt is found.</doc>
<status status="PASS" start="2026-10-03T23:09:47.195677" elapsed="0.535977"/>
</kw>
<msg time="2026-10-03T23:09:47.731760" 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-03T23:09:47.194963" elapsed="0.536825"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:47.732206" level="INFO">Executing command 'sudo chmod +x /usr/local/bin/docker-compose'.</msg>
<msg time="2026-10-03T23:09:47.754955" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:09:47.755085" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:09:47.755127" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:09:47.755167" 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-03T23:09:47.731988" elapsed="0.023201"/>
</kw>
<doc>Install docker-compose on tools system.</doc>
<status status="PASS" start="2026-10-03T23:09:46.757514" elapsed="0.997815"/>
</kw>
<kw name="Pull Netopeer2 Docker Image" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:47.755935" level="INFO">Executing command 'docker pull sysrepo/sysrepo-netopeer2:latest'.</msg>
<msg time="2026-10-03T23:09:57.211194" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:09:57.211653" level="INFO">${stdout} = latest: Pulling from sysrepo/sysrepo-netopeer2
8eba48fcdc7f: Pulling fs layer
399fb1102f3f: Pulling fs layer
9be2789ffa20: Pulling fs layer
3d97b7f99a05: Pulling fs layer
9b0152ba3415: Pulling fs laye...</msg>
<msg time="2026-10-03T23:09:57.211750" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:09:57.211831" 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-03T23:09:47.755779" elapsed="9.456101"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.212964" level="INFO">Executing command 'docker images'.</msg>
<msg time="2026-10-03T23:09:57.323916" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:09:57.324227" level="INFO">${stdout} = IMAGE                              ID             DISK USAGE   CONTENT SIZE   EXTRA
sysrepo/sysrepo-netopeer2:latest   36cc1d841c97        914MB          232MB        </msg>
<msg time="2026-10-03T23:09:57.324358" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:09:57.324444" 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-03T23:09:57.212521" elapsed="0.111973"/>
</kw>
<doc>Pulls the netopeer image from the docker repository.</doc>
<status status="PASS" start="2026-10-03T23:09:47.755519" elapsed="9.569148"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.371862" level="INFO">[chan 4] Opened sftp connection (server version 3)</msg>
<msg time="2026-10-03T23:09:57.383910" 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-03T23:09:57.325061" elapsed="0.059017"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.394843" 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-03T23:09:57.384477" elapsed="0.010499"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.395723" level="INFO">Executing command 'sed -i -e 's/ODL_SYSTEM_IP/10.30.170.37/g' docker-compose.yaml'.</msg>
<msg time="2026-10-03T23:09:57.408701" 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-03T23:09:57.395445" elapsed="0.013394"/>
</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-03T23:09:57.421754" elapsed="0.000863"/>
</kw>
<msg time="2026-10-03T23:09:57.422724" 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-03T23:09:57.420939" elapsed="0.001912"/>
</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-03T23:09:57.420302" elapsed="0.002703"/>
</kw>
<msg time="2026-10-03T23:09:57.423125" 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-03T23:09:57.414592" elapsed="0.008626"/>
</kw>
<msg time="2026-10-03T23:09:57.423455" 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-03T23:09:57.413970" elapsed="0.009535"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.424167" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_SSH/4334/g' docker-compose.yaml'.</msg>
<msg time="2026-10-03T23:09:57.459091" 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-03T23:09:57.423882" elapsed="0.035333"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.459819" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml'.</msg>
<msg time="2026-10-03T23:09:57.506859" 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-03T23:09:57.459623" elapsed="0.047358"/>
</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-03T23:09:57.520056" elapsed="0.000799"/>
</kw>
<msg time="2026-10-03T23:09:57.520958" 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-03T23:09:57.518848" elapsed="0.002263"/>
</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-03T23:09:57.518228" elapsed="0.003179"/>
</kw>
<msg time="2026-10-03T23:09:57.521503" 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-03T23:09:57.512649" elapsed="0.008947"/>
</kw>
<msg time="2026-10-03T23:09:57.521804" 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-03T23:09:57.512110" elapsed="0.009744"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.522799" 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-03T23:09:57.522227" elapsed="0.000626"/>
</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-03T23:09:57.535774" elapsed="0.000797"/>
</kw>
<msg time="2026-10-03T23:09:57.536672" 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-03T23:09:57.534984" elapsed="0.001794"/>
</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-03T23:09:57.534400" elapsed="0.002524"/>
</kw>
<msg time="2026-10-03T23:09:57.537007" 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-03T23:09:57.528823" elapsed="0.008310"/>
</kw>
<msg time="2026-10-03T23:09:57.537369" 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-03T23:09:57.528308" elapsed="0.009112"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.538441" 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-03T23:09:57.537725" elapsed="0.000770"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.539585" 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-03T23:09:57.538884" elapsed="0.000787"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.542558" 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-03T23:09:57.540073" elapsed="0.002577"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.545880" 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-03T23:09:57.543061" elapsed="0.002910"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.548682" 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-03T23:09:57.546400" elapsed="0.002339"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.550845" 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-03T23:09:57.548980" elapsed="0.001922"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.552881" 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-03T23:09:57.551160" elapsed="0.001778"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.555083" 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-03T23:09:57.553196" elapsed="0.001944"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.557146" 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-03T23:09:57.555439" elapsed="0.001765"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.557595" 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-03T23:09:57.732442" 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-03T23:09:57.557460" elapsed="0.175108"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.733206" level="INFO">Executing command 'awk '{print $2}' incorrect_ssh_host_rsa_key.pub'.</msg>
<msg time="2026-10-03T23:09:57.783720" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:09:57.784251" level="INFO">${incorrect_public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTF...</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-03T23:09:57.732955" elapsed="0.051383"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:57.788737" level="INFO">${INCORRECT_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTF...</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-03T23:09:57.785010" elapsed="0.003826"/>
</kw>
<doc>Get the suite ready for callhome test cases.</doc>
<status status="PASS" start="2026-10-03T23:09:46.757166" elapsed="11.031815"/>
</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-03T23:09:57.793245" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c9b2c3890&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-03T23:09:57.792700" elapsed="0.000996"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.794396" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:09:57.831141" 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-03T23:09:57.794130" elapsed="0.037138"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.831874" 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-03T23:09:57.974101" 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-03T23:09:57.831674" elapsed="0.142552"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:57.975013" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:09:58.023093" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:09:58.023333" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOw...</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-03T23:09:57.974802" elapsed="0.048590"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:58.027337" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOw...</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-03T23:09:58.023788" elapsed="0.003654"/>
</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-03T23:09:57.791955" elapsed="0.235614"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:09:58.072488" 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-03T23:09:58.028607" elapsed="0.044010"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:09:58.083092" 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-03T23:09:58.073119" elapsed="0.010099"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-03T23:09:58.027917" elapsed="0.055461"/>
</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-03T23:09:58.085421" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:09:58.084665" elapsed="0.000867"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:09:58.086826" 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-03T23:09:58.087147" 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-03T23:09:58.086539" elapsed="0.000664"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:09:58.088305" 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-03T23:09:58.087573" elapsed="0.000826"/>
</kw>
<status status="PASS" start="2026-10-03T23:09:58.085884" elapsed="0.002628"/>
</kw>
<status status="PASS" start="2026-10-03T23:09:58.085592" elapsed="0.002968"/>
</branch>
<status status="PASS" start="2026-10-03T23:09:58.084605" elapsed="0.004004"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:09:58.089430" 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-03T23:09:58.088923" elapsed="0.000566"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:09:58.090300" 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-03T23:09:58.089823" elapsed="0.000536"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:09:58.091565" 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-03T23:09:58.090691" elapsed="0.000932"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:09:58.092422" 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-03T23:09:58.091957" elapsed="0.000521"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:09:59.019984" level="INFO">POST Request : url=http://10.30.170.37: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:09:59.020364" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:09:58 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:09:59.020637" 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-03T23:09:58.092781" elapsed="0.927913"/>
</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-03T23:09:59.021176" elapsed="0.001273"/>
</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-03T23:09:58.083894" elapsed="0.938695"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:09:59.023420" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-03T23:09:59.361170" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:09:59.361481" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:09:59.361572" 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-03T23:09:59.361656" 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-03T23:09:59.023001" elapsed="0.338697"/>
</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-03T23:09:59.363907" 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-03T23:09:59.363102" elapsed="0.000847"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:09:59.364439" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:09:59.364140" elapsed="0.000354"/>
</branch>
<status status="PASS" start="2026-10-03T23:09:59.364111" elapsed="0.000410"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:09:59.411397" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:09:59.412477" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:09:59.412580" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:09:59.367213" elapsed="0.045392"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:09:59.412970" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:09:59.412683" elapsed="0.000353"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:09:59.413621" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.413236" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-10-03T23:09:59.413062" elapsed="0.000635"/>
</branch>
<status status="PASS" start="2026-10-03T23:09:59.412663" elapsed="0.001057"/>
</if>
<kw name="Status Should Be" owner="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-03T23:09:59.413859" elapsed="0.000217"/>
</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-03T23:09:59.414447" elapsed="0.000446"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:09:59.414301" elapsed="0.000629"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:09:59.415659" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.415157" elapsed="0.000677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.415012" elapsed="0.000903">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.414144" elapsed="0.001833">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.366822" elapsed="0.049286">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.362709" elapsed="0.053528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.419079" 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-03T23:10:01.418204" 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-03T23:10:01.419956" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:01.419429" elapsed="0.000680"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:01.419374" elapsed="0.000793"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:01.437974" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:01.438371" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:01.438601" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:01.426146" elapsed="0.012511"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:01.439441" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:01.438820" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:01.440812" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.439989" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:01.439614" elapsed="0.001370"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:01.438779" elapsed="0.002287"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:01.441398" 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-03T23:10:01.442448" elapsed="0.000967"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:01.442129" elapsed="0.001369"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:01.445054" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.443976" elapsed="0.001262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.443684" elapsed="0.001733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.441843" elapsed="0.003799">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.425268" elapsed="0.020594">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:01.417208" elapsed="0.028890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.449501" 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-03T23:10:03.448638" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:03.450349" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:03.449774" elapsed="0.000698"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:03.449723" elapsed="0.000803"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:03.468611" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:03.468927" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:03.469168" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:03.456609" elapsed="0.012613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:03.470083" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:03.469408" elapsed="0.000790"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:03.471466" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.470637" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:03.470248" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:03.469365" 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-03T23:10:03.471986" elapsed="0.000377"/>
</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-03T23:10:03.473063" elapsed="0.000928"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:03.472740" elapsed="0.001364"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:03.475714" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.474698" elapsed="0.001187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.474405" elapsed="0.001662">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.472482" elapsed="0.003718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.455724" elapsed="0.020716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:03.447630" elapsed="0.029021">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.479898" 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-03T23:10:05.479080" 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-03T23:10:05.480708" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:05.480185" elapsed="0.000641"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:05.480135" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:05.498324" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:05.498644" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:05.498876" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:05.486456" elapsed="0.012475"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:05.499733" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:05.499133" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:05.501235" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.500407" elapsed="0.000957"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:05.499977" elapsed="0.001458"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:05.499089" 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-03T23:10:05.501788" elapsed="0.000354"/>
</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-03T23:10:05.502843" elapsed="0.000966"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:05.502541" elapsed="0.001349"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:05.505411" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.504411" elapsed="0.001172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.504097" elapsed="0.001634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.502264" elapsed="0.003596">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.485580" elapsed="0.020520">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:05.478177" elapsed="0.028149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.509108" 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-03T23:10:07.508298" elapsed="0.000878"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:10:07.509870" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:07.509375" elapsed="0.000614"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:07.509329" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:07.527643" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:07.528019" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:07.528271" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:07.515685" elapsed="0.012664"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:07.529102" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:07.528510" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:07.530486" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.529663" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:07.529273" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:07.528470" elapsed="0.002241"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:07.531019" elapsed="0.000377"/>
</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-03T23:10:07.532084" elapsed="0.001519"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:07.531763" elapsed="0.001924"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:07.535180" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.534183" elapsed="0.001195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.533857" elapsed="0.001672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.531514" elapsed="0.004141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.514811" elapsed="0.021052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:07.507344" elapsed="0.028741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.538849" 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-03T23:10:09.538053" 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-03T23:10:09.539641" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:09.539120" elapsed="0.000640"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:09.539074" elapsed="0.000738"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:09.556984" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:09.557346" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:09.557553" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:09.545698" elapsed="0.011911"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:09.558458" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:09.557783" elapsed="0.000793"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:09.559859" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.559063" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:09.558626" elapsed="0.001464"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:09.557736" 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-03T23:10:09.560477" 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-03T23:10:09.561505" elapsed="0.000957"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:09.561193" elapsed="0.001351"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:09.564018" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.563063" elapsed="0.001149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.562715" elapsed="0.001663">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.560914" elapsed="0.003586">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.544742" elapsed="0.020045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:09.537121" elapsed="0.027866">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.568476" 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-03T23:10:11.567578" elapsed="0.000970"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:11.569270" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:11.568731" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:11.568683" elapsed="0.000782"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:11.586971" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:11.587371" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:11.587600" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:11.575513" elapsed="0.012141"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:11.588427" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:11.587814" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:11.589783" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.588970" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:11.588593" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:11.587774" 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-03T23:10:11.590413" 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-03T23:10:11.591497" elapsed="0.000951"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:11.591172" elapsed="0.001358"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:11.594004" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.593015" elapsed="0.001187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.592724" elapsed="0.001760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.590868" elapsed="0.003745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.574596" elapsed="0.020223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:11.566552" elapsed="0.028462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.597820" 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-03T23:10:13.596975" 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-03T23:10:13.598643" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:13.598097" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:13.598021" elapsed="0.000791"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:13.615209" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:13.615526" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:13.615729" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:13.604362" elapsed="0.011422"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:13.616564" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:13.615943" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:13.617932" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.617139" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:13.616730" elapsed="0.001412"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:13.615904" elapsed="0.002283"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:13.618514" 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-03T23:10:13.619554" elapsed="0.000946"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:13.619238" elapsed="0.001421"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:13.622174" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.621155" elapsed="0.001224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.620833" elapsed="0.001696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.618953" elapsed="0.003702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.603498" elapsed="0.019363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:13.595996" elapsed="0.027113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.628690" 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-03T23:10:15.627869" 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-03T23:10:15.629467" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:15.628923" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:15.628880" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:15.646133" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:15.646440" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:15.646655" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:15.635200" elapsed="0.011508"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:15.647458" elapsed="0.000158"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:15.646863" elapsed="0.000822"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:15.648898" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.648130" elapsed="0.000873"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:15.647736" elapsed="0.001366"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:15.646824" elapsed="0.002324"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:15.649469" elapsed="0.000320"/>
</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-03T23:10:15.650469" elapsed="0.000916"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:15.650160" elapsed="0.001304"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:15.652870" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.651913" elapsed="0.001106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.651627" elapsed="0.001570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.649899" elapsed="0.003437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.634346" elapsed="0.019195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:15.624502" elapsed="0.029232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.656430" 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-03T23:10:17.655609" 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-03T23:10:17.657202" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:17.656668" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:17.656623" elapsed="0.000773"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:17.674141" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:17.674550" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:17.674758" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:17.662883" elapsed="0.011929"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:17.675603" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:17.674974" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:17.676965" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.676170" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:17.675770" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:17.674933" elapsed="0.002287"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:17.677550" 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-03T23:10:17.678583" elapsed="0.000946"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:17.678243" elapsed="0.001367"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:17.681539" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.680091" elapsed="0.001601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.679774" elapsed="0.002065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.677975" elapsed="0.003989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.662001" elapsed="0.020205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:17.654700" elapsed="0.027729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.685174" 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-03T23:10:19.684361" 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-03T23:10:19.685938" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:19.685436" elapsed="0.000698"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:19.685390" elapsed="0.000828"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:19.704729" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:19.705015" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:19.705253" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:19.692264" elapsed="0.013069"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:19.706079" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:19.705494" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:19.707457" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.706642" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:19.706249" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:19.705452" 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-03T23:10:19.707984" 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-03T23:10:19.708995" elapsed="0.000974"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:19.708705" elapsed="0.001376"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:19.711627" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.710644" elapsed="0.001134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.710252" elapsed="0.001671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.708468" elapsed="0.003613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.691173" elapsed="0.021285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:19.683457" elapsed="0.029206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.715411" 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-03T23:10:21.714573" 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-03T23:10:21.716191" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:21.715657" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:21.715613" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:21.733604" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:21.733900" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:21.734187" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:21.722372" elapsed="0.011874"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:21.734975" elapsed="0.000302"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:21.734430" elapsed="0.000962"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:21.736764" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.735823" elapsed="0.001048"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:21.735446" elapsed="0.001495"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:21.734389" elapsed="0.002597"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:21.737350" elapsed="0.000321"/>
</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-03T23:10:21.738383" elapsed="0.000936"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:21.738053" elapsed="0.001348"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:21.740917" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.739853" elapsed="0.001250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.739565" elapsed="0.001859">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.737783" elapsed="0.003770">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.721490" elapsed="0.020270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:21.713623" elapsed="0.028332">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.744847" 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-03T23:10:23.743956" elapsed="0.000961"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:10:23.745690" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:23.745132" elapsed="0.000684"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:23.745085" elapsed="0.000786"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:23.764020" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:23.764389" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:23.764595" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:23.751601" elapsed="0.013048"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:23.765413" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:23.764806" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:23.766805" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.765973" elapsed="0.000938"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:23.765581" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:23.764766" elapsed="0.002290"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:23.767389" elapsed="0.000323"/>
</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-03T23:10:23.768403" elapsed="0.000951"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:23.768089" elapsed="0.001432"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:23.770966" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.769985" elapsed="0.001181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.769693" elapsed="0.001645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.767823" elapsed="0.003666">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.750714" elapsed="0.021035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:23.742936" elapsed="0.029048">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.775477" 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-03T23:10:25.774503" elapsed="0.001041"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:25.776247" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:25.775717" elapsed="0.000672"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:25.775672" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:25.795076" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:25.795433" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:25.795660" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:25.781948" elapsed="0.013766"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:25.796476" elapsed="0.000142"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:25.795869" elapsed="0.000819"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:25.797912" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.797133" elapsed="0.000882"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:25.796738" elapsed="0.002111"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:25.795829" elapsed="0.003070"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:25.799254" elapsed="0.000343"/>
</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-03T23:10:25.800273" elapsed="0.001190"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:25.799948" elapsed="0.001597"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:25.802983" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.801997" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.801710" elapsed="0.001626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.799714" elapsed="0.003750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.781110" elapsed="0.022562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:25.772961" elapsed="0.030910">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.806595" 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-03T23:10:27.805709" elapsed="0.000954"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:27.807391" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:27.806838" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:27.806791" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:27.824449" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:27.824835" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:27.825071" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:27.813095" elapsed="0.012034"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:27.825862" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:27.825308" elapsed="0.000670"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:27.827248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.826458" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:27.826058" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:27.825247" 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-03T23:10:27.827796" 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-03T23:10:27.828819" elapsed="0.001409"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:27.828529" elapsed="0.001805"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:27.831799" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.830797" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.830505" elapsed="0.001628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.828266" elapsed="0.003995">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.812214" elapsed="0.020278">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:27.804742" elapsed="0.027946">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.835550" 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-03T23:10:29.834702" 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-03T23:10:29.836365" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:29.835792" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:29.835747" elapsed="0.000792"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:29.854681" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:29.854997" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:29.855240" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:29.842073" elapsed="0.013248"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:29.856090" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:29.855487" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:29.857542" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.856699" elapsed="0.000948"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:29.856317" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:29.855447" elapsed="0.002313"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:29.858094" elapsed="0.000351"/>
</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-03T23:10:29.859115" elapsed="0.000905"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:29.858796" elapsed="0.001337"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:29.861620" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.860640" elapsed="0.001128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.860350" elapsed="0.001564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.858558" elapsed="0.003507">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.841178" elapsed="0.021211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:29.833738" elapsed="0.028850">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.865644" 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-03T23:10:31.864786" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:31.866542" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:31.865893" elapsed="0.000775"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:31.865847" elapsed="0.000874"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:31.885022" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:31.885414" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:31.885638" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:31.872756" elapsed="0.012936"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:31.886457" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:31.885851" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:31.887817" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.886992" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:31.886623" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:31.885811" 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-03T23:10:31.888393" elapsed="0.000319"/>
</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-03T23:10:31.889409" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:31.889091" elapsed="0.001336"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:31.891884" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.890875" elapsed="0.001191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.890590" elapsed="0.001727">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.888822" elapsed="0.003629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.871877" elapsed="0.020783">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:31.863767" elapsed="0.029089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.895679" 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-03T23:10:33.894824" 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-03T23:10:33.896515" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:33.895928" elapsed="0.000706"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:33.895881" elapsed="0.000807"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:33.916706" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:33.917002" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:33.917241" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:33.902439" elapsed="0.014882"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:33.918055" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:33.917481" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:33.919664" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.918812" elapsed="0.000957"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:33.918264" elapsed="0.001574"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:33.917441" 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-03T23:10:33.920215" 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-03T23:10:33.921229" elapsed="0.000933"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:33.920908" elapsed="0.001447"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:33.923813" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.922820" elapsed="0.001143">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.922531" elapsed="0.001612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.920672" elapsed="0.003599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.901568" elapsed="0.022954">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:33.893836" elapsed="0.030925">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.928139" 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-03T23:10:35.927328" 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-03T23:10:35.928909" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:35.928413" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:35.928367" elapsed="0.000748"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:35.947213" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:35.947536" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:35.947755" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:35.934935" elapsed="0.012874"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:35.948567" elapsed="0.000137"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:35.947964" elapsed="0.000809"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:35.950010" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.949224" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:35.948824" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:35.947924" elapsed="0.002338"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:35.950583" 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-03T23:10:35.951629" elapsed="0.001029"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:35.951277" elapsed="0.001462"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:35.954208" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.953220" elapsed="0.001164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.952902" elapsed="0.001630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.951008" elapsed="0.003646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.934093" elapsed="0.020766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:35.926422" elapsed="0.028662">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.958156" 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-03T23:10:37.957228" elapsed="0.001001"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:37.959002" elapsed="0.000338"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:37.958464" elapsed="0.000969"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:37.958411" elapsed="0.001076"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:37.980179" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:37.980624" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:37.980839" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:37.965472" elapsed="0.015425"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:37.981719" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:37.981098" elapsed="0.000741"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:37.983183" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.982343" elapsed="0.000989"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:37.981892" elapsed="0.001520"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:37.981020" elapsed="0.002438"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:37.983767" 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-03T23:10:37.984858" elapsed="0.001825"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:37.984534" elapsed="0.002234"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:37.988441" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.987283" elapsed="0.001316">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.986937" elapsed="0.001810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.984246" elapsed="0.004623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.964537" elapsed="0.024568">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:37.956172" elapsed="0.033173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:39.992735" 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-03T23:10:39.991519" elapsed="0.001288"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:10:39.993525" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:39.992979" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:39.992935" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:40.012371" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:40.012667" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:40.012877" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:39.999195" elapsed="0.013747"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:40.013740" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:40.013163" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:40.015344" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:40.014507" elapsed="0.000945"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:40.013921" elapsed="0.001601"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:40.013121" 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-03T23:10:40.015868" elapsed="0.000351"/>
</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-03T23:10:40.016874" elapsed="0.000933"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:40.016586" elapsed="0.001300"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:40.019428" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:40.018430" elapsed="0.001221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:40.018081" elapsed="0.001724">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:40.016351" elapsed="0.003576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:39.998341" elapsed="0.021906">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:39.990567" elapsed="0.029921">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.023248" 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-03T23:10:42.022425" 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="NOT RUN" start="2026-10-03T23:10:42.024067" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:42.023511" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:42.023467" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:42.043471" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:42.043762" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:42.043980" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:42.030213" elapsed="0.013853"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:42.044792" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:42.044227" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:42.046149" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.045364" elapsed="0.000890"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:42.044957" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:42.044187" 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-03T23:10:42.046698" 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-03T23:10:42.047706" elapsed="0.000961"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:42.047420" elapsed="0.001327"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:42.050226" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.049251" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.048910" elapsed="0.001734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.047159" elapsed="0.003615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.029355" elapsed="0.021623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:42.021456" elapsed="0.029757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.053885" 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-03T23:10:44.053079" 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-03T23:10:44.054727" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:44.054163" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:44.054115" elapsed="0.000789"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:44.072891" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:44.073222" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:44.073445" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:44.060625" elapsed="0.012874"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:44.074241" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:44.073655" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:44.075630" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.074806" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:44.074431" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:44.073615" 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-03T23:10:44.076183" 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-03T23:10:44.077185" elapsed="0.001124"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:44.076865" elapsed="0.001613"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:44.079981" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.078939" elapsed="0.001230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.078651" elapsed="0.001687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.076630" elapsed="0.003835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.059744" elapsed="0.020927">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:44.052171" elapsed="0.028696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.084113" 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-03T23:10:46.083273" 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-03T23:10:46.084889" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:46.084388" elapsed="0.000621"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:46.084342" elapsed="0.000751"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:46.101114" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:46.101432" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:46.101654" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:46.090629" elapsed="0.011080"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:46.102487" elapsed="0.000138"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:46.101869" elapsed="0.000827"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:46.103936" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.103143" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:46.102749" elapsed="0.001397"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:46.101829" elapsed="0.002362"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:46.104518" 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-03T23:10:46.105581" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:46.105268" elapsed="0.001332"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:46.108059" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.107082" elapsed="0.001129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.106766" elapsed="0.001616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.104992" elapsed="0.003512">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.089737" elapsed="0.018970">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:46.082404" elapsed="0.026493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.111674" 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-03T23:10:48.110827" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:48.112459" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:48.111910" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:48.111865" elapsed="0.000766"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:48.130694" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:48.131096" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:48.131326" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:48.118189" elapsed="0.013194"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:48.132161" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:48.131558" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:48.133554" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.132735" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:48.132360" elapsed="0.001370"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:48.131510" elapsed="0.002264"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:48.134124" 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-03T23:10:48.135147" elapsed="0.001398"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:48.134824" elapsed="0.001805"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:48.138125" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.137115" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.136796" elapsed="0.001847">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.134590" elapsed="0.004177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.117331" elapsed="0.021637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:48.109861" elapsed="0.029330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.141928" 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-03T23:10:50.141128" elapsed="0.000865"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:10:50.142722" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:50.142196" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:50.142151" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:50.160573" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:50.160865" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:50.161098" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:50.148426" elapsed="0.012730"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:50.161889" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:50.161336" elapsed="0.000667"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:50.163327" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.162477" elapsed="0.000959"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:50.162085" elapsed="0.001422"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:50.161272" 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-03T23:10:50.163854" 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-03T23:10:50.164899" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:50.164610" elapsed="0.001309"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:50.167391" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.166418" elapsed="0.001128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.166114" elapsed="0.001589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.164371" elapsed="0.003454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.147552" elapsed="0.020583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:50.140225" elapsed="0.028147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.171236" 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-03T23:10:52.170411" 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="NOT RUN" start="2026-10-03T23:10:52.172008" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:52.171499" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:52.171454" elapsed="0.000758"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:52.189449" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:52.189749" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:52.189966" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:52.178253" elapsed="0.011768"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:52.190817" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:52.190210" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:52.192177" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.191392" elapsed="0.000890"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:52.190980" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:52.190170" 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-03T23:10:52.192716" elapsed="0.000351"/>
</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-03T23:10:52.193797" elapsed="0.000982"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:52.193494" elapsed="0.001365"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:52.196336" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.195361" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.195021" elapsed="0.001697">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.193208" elapsed="0.003637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.177328" elapsed="0.019750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:52.169452" elapsed="0.027823">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.200227" 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-03T23:10:54.199273" elapsed="0.001144"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:10:54.201187" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:54.200608" elapsed="0.000752"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:54.200560" elapsed="0.000860"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:54.219816" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:54.220181" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:54.220476" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:54.207241" elapsed="0.013296"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:54.221372" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:54.220698" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:54.222806" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.221921" elapsed="0.000994"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:54.221546" elapsed="0.001439"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:54.220657" elapsed="0.002407"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:54.223420" 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-03T23:10:54.224556" elapsed="0.001071"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:54.224150" elapsed="0.001642"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:54.227463" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.226400" elapsed="0.001223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.225968" elapsed="0.001805">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.223861" elapsed="0.004050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.206384" elapsed="0.021772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:54.198323" elapsed="0.030086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.233769" 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-03T23:10:56.232949" 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-03T23:10:56.234544" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:56.234002" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:56.233959" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:56.251931" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:56.252319" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:56.252569" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:56.240251" elapsed="0.012374"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:56.253444" elapsed="0.000143"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:56.252795" elapsed="0.000866"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:56.254948" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.254119" elapsed="0.000972"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:56.253715" elapsed="0.001451"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:56.252751" elapsed="0.002463"/>
</if>
<kw name="Status Should Be" owner="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-03T23:10:56.255548" elapsed="0.000326"/>
</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-03T23:10:56.256590" elapsed="0.000952"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:56.256265" elapsed="0.001360"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:56.259119" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.258118" elapsed="0.001158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.257795" elapsed="0.001660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.255990" elapsed="0.003590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.239368" elapsed="0.020421">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:56.232089" elapsed="0.027894">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.262864" 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-03T23:10:58.261865" elapsed="0.001065"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:10:58.263664" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:58.263144" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:58.263097" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:10:58.280467" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:10:58.280850" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:10:58.281084" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:10:58.269369" elapsed="0.011772"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:10:58.281871" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:10:58.281321" elapsed="0.000664"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:10:58.283248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.282458" elapsed="0.000968"/>
</kw>
<status status="PASS" start="2026-10-03T23:10:58.282068" elapsed="0.001429"/>
</branch>
<status status="PASS" start="2026-10-03T23:10:58.281260" 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-03T23:10:58.283848" elapsed="0.000348"/>
</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-03T23:10:58.284861" elapsed="0.001618"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:10:58.284571" elapsed="0.001993"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:10:58.288009" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.287018" elapsed="0.001176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.286731" elapsed="0.001635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.284330" elapsed="0.004163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.268501" elapsed="0.020197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:10:58.260916" elapsed="0.027972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.291804" 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-03T23:11:00.290891" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:11:00.292614" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:00.292083" elapsed="0.000651"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:00.292007" elapsed="0.000782"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:00.308350" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:00.308638" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:00.308837" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:00.298350" elapsed="0.010542"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:00.309668" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:00.309084" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:00.311002" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.310233" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:00.309836" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:00.309009" 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-03T23:11:00.311594" 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-03T23:11:00.312605" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:00.312289" elapsed="0.001338"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:00.315105" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.314112" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.313794" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.312018" elapsed="0.003532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.297477" elapsed="0.018380">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:00.289913" elapsed="0.026176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.318791" 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-03T23:11:02.317891" elapsed="0.000970"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:11:02.319643" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:02.319074" elapsed="0.000694"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:02.318994" elapsed="0.000829"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:02.337452" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:02.337752" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:02.337978" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:02.326050" elapsed="0.012027"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:02.338868" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:02.338263" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:02.340326" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.339503" elapsed="0.000936"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:02.339075" elapsed="0.001436"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:02.338216" elapsed="0.002340"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:02.340862" 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-03T23:11:02.341905" elapsed="0.000928"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:02.341590" elapsed="0.001325"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:02.344543" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.343500" elapsed="0.001199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.343115" elapsed="0.001822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.341350" elapsed="0.003749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.325122" elapsed="0.020236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:02.316961" elapsed="0.028673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.348543" 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-03T23:11:04.347668" 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="NOT RUN" start="2026-10-03T23:11:04.349398" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:04.348789" elapsed="0.000741"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:04.348744" elapsed="0.000841"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:04.364690" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:04.364972" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:04.365205" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:04.355240" elapsed="0.010020"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:04.365994" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:04.365443" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:04.367565" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.366622" elapsed="0.001055"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:04.366194" elapsed="0.001561"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:04.365402" elapsed="0.002417"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:04.368189" elapsed="0.000376"/>
</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-03T23:11:04.369286" elapsed="0.001073"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:04.368928" elapsed="0.001607"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:04.372097" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.371006" elapsed="0.001249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.370713" elapsed="0.001750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.368685" elapsed="0.003907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.354388" elapsed="0.018413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:04.346676" elapsed="0.026319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.376403" 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-03T23:11:06.375540" elapsed="0.000942"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:11:06.377202" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:06.376663" elapsed="0.000714"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:06.376618" elapsed="0.000821"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:06.393740" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:06.394076" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:06.394356" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:06.383144" elapsed="0.011278"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:06.395207" elapsed="0.000172"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:06.394587" elapsed="0.000870"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:06.396752" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.395891" elapsed="0.000968"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:06.395512" elapsed="0.001417"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:06.394544" elapsed="0.002434"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:06.397374" elapsed="0.000327"/>
</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-03T23:11:06.398441" elapsed="0.001016"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:06.398090" elapsed="0.001452"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:06.401100" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.400000" elapsed="0.001264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.399709" elapsed="0.001751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.397819" elapsed="0.003769">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.382244" elapsed="0.019547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:06.373957" elapsed="0.028027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.404851" 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-03T23:11:08.403963" elapsed="0.000958"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:11:08.405691" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:08.405131" elapsed="0.000685"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:08.405082" elapsed="0.000822"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:08.421791" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:08.422224" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:08.422495" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:08.411866" elapsed="0.010690"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:08.423398" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:08.422724" elapsed="0.000799"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:08.424832" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.423961" elapsed="0.000981"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:08.423575" elapsed="0.001441"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:08.422680" elapsed="0.002420"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:08.425466" elapsed="0.000330"/>
</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-03T23:11:08.426536" elapsed="0.000997"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:08.426191" elapsed="0.001427"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:08.429696" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.428121" elapsed="0.001730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.427788" elapsed="0.002215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.425915" elapsed="0.004255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.410910" elapsed="0.019518">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:08.402963" elapsed="0.027667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.433420" 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-03T23:11:10.432575" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:11:10.434191" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:10.433664" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:10.433617" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:10.449363" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:10.449663" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:10.449863" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:10.439897" elapsed="0.010020"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:10.450687" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:10.450109" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:10.452134" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.451343" elapsed="0.000896"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:10.450851" elapsed="0.001477"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:10.450065" 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-03T23:11:10.452679" 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-03T23:11:10.453683" elapsed="0.000926"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:10.453393" elapsed="0.001297"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:10.456154" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.455174" elapsed="0.001151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.454855" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.453134" elapsed="0.003468">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.439053" elapsed="0.017844">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:10.431668" elapsed="0.025464">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.459871" 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-03T23:11:12.459069" 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-03T23:11:12.460684" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:12.460143" elapsed="0.000659"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:12.460096" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:12.477158" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:12.477486" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:12.477711" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:12.466813" elapsed="0.010955"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:12.478545" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:12.477928" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:12.479896" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.479107" elapsed="0.000894"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:12.478714" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:12.477887" 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-03T23:11:12.480518" 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-03T23:11:12.481545" elapsed="0.000956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:12.481221" elapsed="0.001364"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:12.484065" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.483070" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.482751" elapsed="0.001725">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.480951" elapsed="0.003656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.465941" elapsed="0.018874">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:12.458105" elapsed="0.026908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.487749" 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-03T23:11:14.486901" 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-03T23:11:14.488537" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:14.487986" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:14.487942" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:14.505205" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:14.505521" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:14.505722" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:14.494276" elapsed="0.011500"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:14.506542" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:14.505931" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:14.507903" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.507110" elapsed="0.000898"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:14.506709" elapsed="0.001408"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:14.505892" 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-03T23:11:14.508491" 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-03T23:11:14.509492" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:14.509181" elapsed="0.001412"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:14.512072" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.511086" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.510767" elapsed="0.001624">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.508915" elapsed="0.003603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.493432" elapsed="0.019290">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:14.485942" elapsed="0.026975">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.516229" 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-03T23:11:16.515420" elapsed="0.000875"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:11:16.516981" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:16.516487" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:16.516442" elapsed="0.000743"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:16.532345" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:16.532628" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:16.532850" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:16.522655" elapsed="0.010252"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:16.533675" elapsed="0.000132"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:16.533099" elapsed="0.000776"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:16.535149" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.534355" elapsed="0.000901"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:16.533927" elapsed="0.001427"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:16.533056" elapsed="0.002344"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:16.535705" 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-03T23:11:16.536778" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:16.536486" elapsed="0.001310"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:16.539280" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.538324" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.537956" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.536162" elapsed="0.003557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.521787" elapsed="0.018134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:16.513878" elapsed="0.026267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.542788" 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-03T23:11:18.541953" 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-03T23:11:18.543572" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:18.543023" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:18.542978" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:18.559128" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:18.559533" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:18.559738" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:18.549385" elapsed="0.010409"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:18.560562" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:18.559955" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:18.561925" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.561138" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:18.560729" elapsed="0.001408"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:18.559913" elapsed="0.002269"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:18.562509" 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-03T23:11:18.563516" elapsed="0.001391"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:18.563206" elapsed="0.001783"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:18.566493" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.565497" elapsed="0.001144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.565186" elapsed="0.001603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.562937" elapsed="0.003976">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.548518" elapsed="0.018631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:18.541016" elapsed="0.026348">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.570290" 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-03T23:11:20.569467" 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="NOT RUN" start="2026-10-03T23:11:20.571080" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:20.570554" elapsed="0.000645"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:20.570509" elapsed="0.000742"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:20.586681" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:20.586972" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:20.587254" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:20.576831" elapsed="0.010504"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:20.588077" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:20.587498" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:20.589529" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.588691" elapsed="0.000943"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:20.588246" elapsed="0.001457"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:20.587457" elapsed="0.002290"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:20.590078" elapsed="0.000409"/>
</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-03T23:11:20.591155" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:20.590835" elapsed="0.001340"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:20.593616" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.592647" elapsed="0.001120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.592362" elapsed="0.001550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.590600" elapsed="0.003467">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.575905" elapsed="0.018494">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:20.568499" elapsed="0.026102">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.597446" 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-03T23:11:22.596619" 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-03T23:11:22.598210" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:22.597686" elapsed="0.000666"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:22.597642" elapsed="0.000762"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:22.614624" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:22.614907" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:22.615163" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:22.604574" elapsed="0.010646"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:22.615957" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:22.615404" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:22.617540" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.616555" elapsed="0.001092"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:22.616159" elapsed="0.001559"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:22.615363" elapsed="0.002403"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:22.618101" 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-03T23:11:22.619138" elapsed="0.001010"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:22.618792" elapsed="0.001443"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:22.621724" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.620733" elapsed="0.001138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.620428" elapsed="0.001704">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.618558" elapsed="0.003703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.603676" elapsed="0.019190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:22.595678" elapsed="0.027428">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.625856" 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-03T23:11:24.625064" elapsed="0.000858"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:11:24.626638" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:24.626125" elapsed="0.000630"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:24.626080" elapsed="0.000727"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:24.642531" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:24.642828" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:24.643059" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:24.632427" elapsed="0.010689"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:24.643843" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:24.643273" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:24.645254" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.644466" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:24.644008" elapsed="0.001444"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:24.643233" elapsed="0.002264"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:24.645798" elapsed="0.001329"/>
</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-03T23:11:24.647790" elapsed="0.000949"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:24.647501" elapsed="0.001421"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:24.650483" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.649441" elapsed="0.001200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.649133" elapsed="0.001656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.647245" elapsed="0.003668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.631565" elapsed="0.019585">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:24.624106" elapsed="0.027264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.654696" 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-03T23:11:26.653824" 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="NOT RUN" start="2026-10-03T23:11:26.655491" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:26.654932" elapsed="0.000677"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:26.654888" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:26.671193" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:26.671516" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:26.671734" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:26.661447" elapsed="0.010340"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:26.672549" elapsed="0.000153"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:26.671941" elapsed="0.000849"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:26.674286" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.673399" elapsed="0.001040"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:26.672854" elapsed="0.001661"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:26.671902" elapsed="0.002659"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:26.674873" elapsed="0.000389"/>
</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-03T23:11:26.676001" elapsed="0.001000"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:26.675652" elapsed="0.001496"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:26.678680" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.677645" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.677355" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.675407" elapsed="0.003756">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.660570" elapsed="0.018866">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:26.652793" elapsed="0.026853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.682746" 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-03T23:11:28.681668" elapsed="0.001174"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:11:28.683866" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:28.683131" elapsed="0.000946"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:28.683023" elapsed="0.001140"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:28.702930" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:28.703388" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:28.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-03T23:11:28.692592" elapsed="0.011058"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:28.704420" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:28.703811" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:28.705783" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.704960" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:28.704587" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:28.703771" 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-03T23:11:28.706366" elapsed="0.000321"/>
</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-03T23:11:28.707378" elapsed="0.001479"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:28.707064" elapsed="0.001878"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:28.710449" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.709454" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.709144" elapsed="0.001604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.706800" elapsed="0.004073">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.691631" elapsed="0.019513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:28.680616" elapsed="0.030748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.714486" 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-03T23:11:30.713645" 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-03T23:11:30.715259" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:30.714730" elapsed="0.000695"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:30.714683" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:30.731487" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:30.731766" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:30.731964" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:30.721622" elapsed="0.010397"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:30.732810" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:30.732213" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:30.734192" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.733406" elapsed="0.000891"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:30.732975" elapsed="0.001412"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:30.732173" 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-03T23:11:30.734734" 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-03T23:11:30.735738" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:11:30.735451" elapsed="0.001300"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:30.738319" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.737235" elapsed="0.001239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.736914" elapsed="0.001705">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.735190" elapsed="0.003561">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.720732" elapsed="0.018369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.712660" elapsed="0.026687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-10-03T23:11:30.739538" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:09:59.361986" elapsed="91.377785">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:30.740235" elapsed="0.000048"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:30.742893" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:11:31.051373" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:11:31.051698" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:11:31.051793" 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-03T23:11:31.051878" 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-03T23:11:30.742181" elapsed="0.309746"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:31.053143" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:11:31.052525" elapsed="0.000708"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.053976" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:11:31.397479" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:11:31.397840" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:11:31.397945" 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-03T23:11:31.398209" 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-03T23:11:31.053634" elapsed="0.344643"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.399245" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:11:31.474563" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:11:31.474874" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:11:31.474966" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:11:31.475089" 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-03T23:11:31.398815" elapsed="0.076328"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.475929" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:11:31.524391" 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-03T23:11:31.475664" elapsed="0.048854"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:31.543950" level="INFO">DELETE Request : url=http://10.30.170.37: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=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:31.544093" level="INFO">DELETE Response : url=http://10.30.170.37: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-03T23:11:31.544447" 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-03T23:11:31.524825" elapsed="0.019681"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:31.560664" level="INFO">DELETE Request : url=http://10.30.170.37: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=node01m07nqduas7jx18il9ihyhv5p80.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:31.560975" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:11:31.561219" 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-03T23:11:31.544823" elapsed="0.016457"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:11:30.741102" elapsed="0.820374"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-10-03T23:09:57.790308" elapsed="93.771268">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC3hQ5Hz654y4vslOecXNOMwZDe92BQxRly+I1U83w0TjVHA01E7xrZjuIUkFuVWT3iVGLfD4Pl5ijt2+swFO1s6mQHrZnp7NRiBmFT+dh0IVPDTmQfnUfk43CJarUzUALk4mUDZYvURa0oyylsI/2eLXX9FmJ3UFAJ+nNYEaOwJfNqnrEdAr+vcPKV0WihYbTbZBZUvUvuYeZ+b6Y1wI3aKuCWNMooZExaZQLXh91SQI6wqkiv3PD2eIc7bsw7PMJzKvmPOJgzIAyqD3Y/H8wKWxC2FJeVgXGTSNy9ZVvKBZe5eb/m2LymVU2GDWjNEziHd9RcbkGHc045xm1/M80h","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-03T23:11:31.564796" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c99fa1010&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-03T23:11:31.564348" elapsed="0.000785"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.565830" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:11:31.579122" 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-03T23:11:31.565603" elapsed="0.013657"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.579903" 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-03T23:11:31.779854" 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-03T23:11:31.579687" elapsed="0.200390"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.780872" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:11:31.832456" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:11:31.832710" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX...</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-03T23:11:31.780609" elapsed="0.052173"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:11:31.836630" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX...</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-03T23:11:31.833370" elapsed="0.003360"/>
</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-03T23:11:31.563516" elapsed="0.273345"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.882613" 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-03T23:11:31.837950" elapsed="0.044793"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.894105" 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-03T23:11:31.883158" elapsed="0.011070"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-03T23:11:31.837248" elapsed="0.057131"/>
</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-03T23:11:31.896265" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:31.895637" elapsed="0.000851"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:11:31.897791" 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-03T23:11:31.898101" 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-03T23:11:31.897522" elapsed="0.000635"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:11:31.899198" 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-03T23:11:31.898528" elapsed="0.000759"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:31.896838" elapsed="0.002584"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:31.896548" elapsed="0.002922"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:31.895590" elapsed="0.003924"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:11:31.900302" 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-03T23:11:31.899830" elapsed="0.000563"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:11:31.901163" 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-03T23:11:31.900725" elapsed="0.000494"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:11:31.901963" 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-03T23:11:31.901566" elapsed="0.000451"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:11:31.902805" 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-03T23:11:31.902394" elapsed="0.000465"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:31.923952" level="INFO">POST Request : url=http://10.30.170.37: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:11:31.924109" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:11:31 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:31.924298" 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-03T23:11:31.903186" elapsed="0.021188"/>
</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-03T23:11:31.924745" elapsed="0.000853"/>
</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-03T23:11:31.894871" elapsed="0.030852"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:11:31.926520" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-03T23:11:32.233371" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:11:32.233742" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:11:32.233833" 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-03T23:11:32.233915" 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-03T23:11:31.926141" elapsed="0.307822"/>
</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-03T23:11:32.240237" 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-03T23:11:32.239462" elapsed="0.000835"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:11:32.241125" elapsed="0.000458"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:32.240599" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:32.240551" elapsed="0.001167"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:32.259142" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:32.259493" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:32.259729" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:32.248095" elapsed="0.011688"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:32.260619" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:32.259958" elapsed="0.000800"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:32.262116" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.261228" elapsed="0.000993"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:32.260813" elapsed="0.001477"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:32.259914" elapsed="0.002514"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:32.262753" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:32.264898" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.263837" elapsed="0.001268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.263495" elapsed="0.001762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.263231" elapsed="0.002193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.246999" elapsed="0.018638">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.236109" elapsed="0.029836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.268723" 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-03T23:11:34.267879" 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-03T23:11:34.269561" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:34.268962" elapsed="0.001128"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:34.268917" elapsed="0.001229"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:34.285829" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:34.286168" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:34.286425" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:34.276396" elapsed="0.010089"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:34.287252" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:34.286650" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:34.288625" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.287808" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:34.287444" elapsed="0.001358"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:34.286607" 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-03T23:11:34.289182" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:34.291459" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.290194" elapsed="0.001553">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.289878" elapsed="0.002029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.289644" elapsed="0.002948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.275447" elapsed="0.017462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:34.266910" elapsed="0.026235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.295931" 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-03T23:11:36.295019" elapsed="0.001000"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:11:36.296783" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:36.296244" elapsed="0.001026"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:36.296195" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:36.312835" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:36.313164" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:36.313391" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:36.302875" elapsed="0.010573"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:36.314194" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:36.313608" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:36.315692" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.314838" elapsed="0.000958"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:36.314405" elapsed="0.001462"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:36.313566" elapsed="0.002346"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:36.316248" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:36.318257" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.317252" elapsed="0.001177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.316931" elapsed="0.001647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.316696" elapsed="0.002098">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.302008" elapsed="0.016996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:36.294105" elapsed="0.025129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.321982" 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-03T23:11:38.321097" 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-03T23:11:38.322835" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:38.322294" elapsed="0.001042"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:38.322248" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:38.338836" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:38.339193" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:38.339457" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:38.329500" elapsed="0.010013"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:38.340272" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:38.339677" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:38.341673" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.340857" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:38.340465" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:38.339635" 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-03T23:11:38.342240" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:38.344332" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.343298" elapsed="0.001340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.342961" elapsed="0.001832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.342694" elapsed="0.002225">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.328494" elapsed="0.016671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:38.320196" elapsed="0.025190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.348236" 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-03T23:11:40.347431" 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-03T23:11:40.349000" elapsed="0.000426"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:40.348503" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:40.348456" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:40.364756" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:40.365092" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:40.365333" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:40.355228" elapsed="0.010163"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:40.366219" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:40.365565" elapsed="0.000802"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:40.367646" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.366797" elapsed="0.001049"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:40.366420" elapsed="0.001499"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:40.365520" elapsed="0.002444"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:40.368325" elapsed="0.000323"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:40.370408" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.369347" elapsed="0.001213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.369001" elapsed="0.001706">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.368762" elapsed="0.002071">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.354330" elapsed="0.016740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:40.346368" elapsed="0.024901">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.374530" 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-03T23:11:42.373165" elapsed="0.001432"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:11:42.375333" elapsed="0.000376"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:42.374774" elapsed="0.001017"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:42.374729" elapsed="0.001114"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:42.390837" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:42.391223" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:42.391564" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:42.381415" elapsed="0.010206"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:42.392387" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:42.391783" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:42.393730" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.392920" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:42.392555" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:42.391742" 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-03T23:11:42.394290" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:42.396404" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.395302" elapsed="0.001253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.394979" elapsed="0.001740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.394747" elapsed="0.002148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.380514" elapsed="0.016641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:42.372243" elapsed="0.025133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.400206" 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-03T23:11:44.399360" 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-03T23:11:44.400987" elapsed="0.000426"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:44.400482" elapsed="0.001011"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:44.400436" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:44.416687" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:44.416997" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:44.417240" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:44.407291" elapsed="0.010003"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:44.418056" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:44.417477" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:44.419424" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.418615" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:44.418224" elapsed="0.001376"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:44.417437" 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-03T23:11:44.419950" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:44.421957" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.420954" elapsed="0.001187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.420665" elapsed="0.001628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.420430" elapsed="0.002011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.406429" elapsed="0.016216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:44.398413" elapsed="0.024427">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.426225" 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-03T23:11:46.425421" elapsed="0.000872"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:11:46.427011" elapsed="0.000418"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:46.426490" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:46.426446" elapsed="0.001114"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:46.443816" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:46.444153" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:46.444398" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:46.433181" elapsed="0.011274"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:46.445199" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:46.444617" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:46.446573" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.445751" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:46.445390" elapsed="0.001362"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:46.444577" 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-03T23:11:46.447197" elapsed="0.000351"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:46.449237" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.448221" elapsed="0.001197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.447898" elapsed="0.001669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.447662" elapsed="0.002030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.432328" elapsed="0.017570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:46.424452" elapsed="0.025765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.452942" 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-03T23:11:48.452122" 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="PASS" start="2026-10-03T23:11:48.453785" elapsed="0.000395"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:48.453250" elapsed="0.001030"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:48.453204" elapsed="0.001164"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:48.469609" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:48.469908" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:48.470172" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:48.459909" elapsed="0.010333"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:48.471191" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:48.470491" elapsed="0.000849"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:48.472632" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.471778" elapsed="0.000961"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:48.471393" elapsed="0.001417"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:48.470443" elapsed="0.002411"/>
</if>
<kw name="Status Should Be" owner="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-03T23:11:48.473189" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:48.475725" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.474218" elapsed="0.001660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.473890" elapsed="0.002166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.473653" elapsed="0.002569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.459077" elapsed="0.017516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:48.451168" elapsed="0.025629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.479526" 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-03T23:11:50.478701" 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-03T23:11:50.480292" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:50.479767" elapsed="0.001009"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:50.479722" elapsed="0.001109"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:50.495807" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:50.496251" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:50.496501" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:50.486499" elapsed="0.010056"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:50.497305" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:50.496714" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:50.498689" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.497870" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:50.497497" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:50.496673" 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-03T23:11:50.499238" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:50.501256" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.500248" elapsed="0.001182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.499925" elapsed="0.001655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.499689" elapsed="0.002105">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.485615" elapsed="0.016396">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:50.477740" elapsed="0.024531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.505078" 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-03T23:11:52.504244" 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-03T23:11:52.505878" elapsed="0.000403"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:52.505339" elapsed="0.001048"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:52.505275" elapsed="0.001164"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:52.521618" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:52.521899" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:52.522150" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:52.512589" elapsed="0.009617"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:52.522935" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:52.522388" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:52.524399" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.523532" elapsed="0.000975"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:52.523134" elapsed="0.001444"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:52.522346" 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-03T23:11:52.524926" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:52.527084" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.525944" elapsed="0.001405">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.525653" elapsed="0.001850">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.525419" elapsed="0.002209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.511699" elapsed="0.016134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:52.503238" elapsed="0.024816">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.530703" 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-03T23:11:54.529874" 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-03T23:11:54.531485" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:54.530941" elapsed="0.000985"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:54.530896" elapsed="0.001081"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:54.546868" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:54.547203" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:54.547433" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:54.537593" elapsed="0.009895"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:54.548227" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:54.547647" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:54.549615" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.548787" elapsed="0.001020"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:54.548414" elapsed="0.001466"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:54.547606" 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-03T23:11:54.550263" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:54.552504" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.551383" elapsed="0.001280">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.550994" elapsed="0.001819">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.550714" elapsed="0.002224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.536724" elapsed="0.016452">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:54.528949" elapsed="0.024447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.556691" 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-03T23:11:56.555348" 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-03T23:11:56.557482" elapsed="0.000368"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:56.556934" elapsed="0.000996"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:56.556887" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:56.573422" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:56.573705" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:56.574004" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:56.563621" elapsed="0.010472"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:56.574902" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:56.574254" elapsed="0.000766"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:56.576287" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.575502" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:56.575107" elapsed="0.001382"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:56.574213" 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-03T23:11:56.576840" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:56.578857" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.577847" elapsed="0.001162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.577557" elapsed="0.001636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.577302" elapsed="0.002045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.562720" elapsed="0.016837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:56.554400" elapsed="0.025355">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.582438" 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-03T23:11:58.581613" 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-03T23:11:58.583593" elapsed="0.000370"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:58.582678" elapsed="0.001397"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:58.582634" elapsed="0.001495"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:11:58.599705" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:11:58.599996" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:11:58.600232" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:11:58.589792" elapsed="0.010495"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:11:58.601023" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:11:58.600471" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:11:58.602431" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.601620" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:11:58.601221" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-03T23:11:58.600430" 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-03T23:11:58.602961" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:11:58.605059" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.603980" elapsed="0.001262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.603693" elapsed="0.001727">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.603458" elapsed="0.002089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.588884" elapsed="0.016870">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:58.580695" elapsed="0.025252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.609349" 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-03T23:12:00.608537" 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-03T23:12:00.610142" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:00.609586" elapsed="0.001015"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:00.609542" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:00.626593" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:00.626883" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:00.627131" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:00.616348" 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-03T23:12:00.627910" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:00.627369" elapsed="0.000653"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:00.629268" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.628494" elapsed="0.000949"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:00.628104" elapsed="0.001409"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:00.627303" 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-03T23:12:00.630137" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:00.632191" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.631146" elapsed="0.001216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.630830" elapsed="0.001677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.630598" elapsed="0.002032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.615484" elapsed="0.017349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:00.607482" elapsed="0.025670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.635842" 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-03T23:12:02.634996" 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-03T23:12:02.636628" elapsed="0.000359"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:02.636112" elapsed="0.000985"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:02.636066" elapsed="0.001084"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:02.652423" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:02.652708" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:02.653007" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:02.642910" 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-03T23:12:02.653906" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:02.653345" elapsed="0.000676"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:02.655298" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.654493" elapsed="0.000936"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:02.654105" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:02.653281" 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-03T23:12:02.655884" elapsed="0.000380"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:02.658463" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.656928" elapsed="0.001698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.656641" elapsed="0.002135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.656403" elapsed="0.002499">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.641998" elapsed="0.017235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:02.634093" elapsed="0.025380">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.662385" 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-03T23:12:04.661518" elapsed="0.000936"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:12:04.663580" elapsed="0.000521"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:04.662632" elapsed="0.001552"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:04.662584" elapsed="0.001652"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:04.679141" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:04.679480" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:04.679684" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:04.669800" elapsed="0.009938"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:04.680579" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:04.679898" elapsed="0.000818"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:04.682206" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.681185" elapsed="0.001152"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:04.680769" elapsed="0.001647"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:04.679858" elapsed="0.002604"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:04.682833" elapsed="0.000378"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:04.685017" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.683883" elapsed="0.001328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.683591" elapsed="0.001792">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.683350" elapsed="0.002271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.668937" elapsed="0.016905">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:04.660503" elapsed="0.025565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.688771" 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-03T23:12:06.687929" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:12:06.689563" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:06.689009" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:06.688967" elapsed="0.001124"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:06.706298" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:06.706616" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:06.706836" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:06.696071" elapsed="0.010822"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:06.707675" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:06.707087" elapsed="0.000705"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:06.709062" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.708254" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:06.707842" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:06.707015" 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-03T23:12:06.709636" elapsed="0.000427"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:06.711824" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.710741" elapsed="0.001418">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.710448" elapsed="0.001864">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.710185" elapsed="0.002276">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.695189" elapsed="0.017476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:06.686966" elapsed="0.025894">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.715505" 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-03T23:12:08.714690" 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-03T23:12:08.716275" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:08.715740" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:08.715698" elapsed="0.001092"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:08.732014" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:08.732378" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:08.732592" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:08.722539" elapsed="0.010109"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:08.733444" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:08.732805" elapsed="0.000755"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:08.734801" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.733977" elapsed="0.001025"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:08.733609" elapsed="0.001498"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:08.732766" elapsed="0.002387"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:08.735482" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:08.737505" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.736492" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.736181" elapsed="0.001626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.735912" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.721641" elapsed="0.016539">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:08.713776" elapsed="0.024629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.741599" 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-03T23:12:10.740227" 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-03T23:12:10.742400" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:10.741842" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:10.741798" elapsed="0.001098"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:10.757496" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:10.757778" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:10.758125" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:10.748487" elapsed="0.009695"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:10.758911" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:10.758365" elapsed="0.000689"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:10.760383" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.759547" elapsed="0.000948"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:10.759108" elapsed="0.001462"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:10.758303" elapsed="0.002327"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:10.761082" elapsed="0.000439"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:10.763295" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.762276" elapsed="0.001191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.761946" elapsed="0.001670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.761672" elapsed="0.002068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.747610" elapsed="0.016334">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:10.739306" elapsed="0.024863">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.766918" 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-03T23:12:12.766065" 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-03T23:12:12.767730" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:12.767194" elapsed="0.001023"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:12.767147" elapsed="0.001124"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:12.783023" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:12.783375" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:12.783575" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:12.773792" elapsed="0.009837"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:12.784436" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:12.783789" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:12.785778" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.784974" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:12.784602" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:12.783750" 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-03T23:12:12.786356" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:12.788455" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.787419" elapsed="0.001189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.787015" elapsed="0.001742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.786781" elapsed="0.002098">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.772942" elapsed="0.016171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:12.765101" elapsed="0.024206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.794845" 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-03T23:12:14.794006" 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-03T23:12:14.795638" elapsed="0.000365"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:14.795120" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:14.795073" elapsed="0.001096"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:14.810442" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:14.810727" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:14.810957" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:14.801634" elapsed="0.009380"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:14.811777" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:14.811208" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:14.813161" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.812375" elapsed="0.000891"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:14.811945" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:14.811168" 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-03T23:12:14.813712" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:14.815723" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.814718" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.814426" elapsed="0.001596">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.814169" elapsed="0.002014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.800772" elapsed="0.015643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:14.793125" elapsed="0.023580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.819403" 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-03T23:12:16.818561" 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-03T23:12:16.820171" elapsed="0.000381"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:16.819643" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:16.819599" elapsed="0.001085"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:16.835525" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:16.835819" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:16.836015" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:16.826280" elapsed="0.009822"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:16.836833" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:16.836261" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:16.838203" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.837420" elapsed="0.000890"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:16.836999" elapsed="0.001403"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:16.836222" 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-03T23:12:16.838750" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:16.841414" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.839781" elapsed="0.001787">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.839492" elapsed="0.002226">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.839230" elapsed="0.002612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.825428" elapsed="0.016757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:16.817658" elapsed="0.024745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.845132" 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-03T23:12:18.844267" elapsed="0.000935"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:12:18.845928" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:18.845397" elapsed="0.001033"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:18.845351" elapsed="0.001131"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:18.861763" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:18.862092" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:18.862293" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:18.852214" elapsed="0.010158"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:18.863135" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:18.862545" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:18.864503" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.863686" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:18.863300" elapsed="0.001397"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:18.862501" elapsed="0.002241"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:18.865074" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:18.867128" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.866113" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.865794" elapsed="0.001661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.865540" elapsed="0.002133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.851333" elapsed="0.016550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:18.843376" elapsed="0.024730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.871003" 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-03T23:12:20.870212" 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-03T23:12:20.871794" elapsed="0.000400"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:20.871276" elapsed="0.001014"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:20.871231" elapsed="0.001159"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:20.888312" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:20.888628" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:20.888849" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:20.878942" elapsed="0.009964"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:20.889680" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:20.889102" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:20.891056" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.890252" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:20.889850" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:20.889059" 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-03T23:12:20.891639" elapsed="0.000325"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:20.893668" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.892665" elapsed="0.001244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.892369" elapsed="0.001746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.892108" elapsed="0.002132">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.878087" elapsed="0.016380">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:20.869251" elapsed="0.025409">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.897500" 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-03T23:12:22.896585" elapsed="0.000984"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:12:22.898277" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:22.897743" elapsed="0.001002"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:22.897698" elapsed="0.001100"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:22.914109" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:22.914421" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:22.914624" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:22.904660" elapsed="0.010019"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:22.915447" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:22.914840" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:22.916782" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.915975" elapsed="0.001001"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:22.915613" elapsed="0.001467"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:22.914800" 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-03T23:12:22.917458" elapsed="0.000320"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:22.919603" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.918559" elapsed="0.001200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.918166" elapsed="0.001744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.917892" elapsed="0.002174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.903768" elapsed="0.016512">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:22.895613" elapsed="0.024886">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.923656" 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-03T23:12:24.922297" elapsed="0.001429"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:12:24.924494" elapsed="0.000372"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:24.923901" elapsed="0.001046"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:24.923856" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:24.940996" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:24.941346" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:24.941660" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:24.930603" elapsed="0.011114"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:24.942505" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:24.941881" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:24.943869" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.943069" elapsed="0.000905"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:24.942671" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:24.941840" elapsed="0.002284"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:24.944451" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:24.946479" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.945460" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.945145" elapsed="0.001633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.944878" elapsed="0.002025">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.929723" elapsed="0.017419">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:24.921416" elapsed="0.025946">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.950104" 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-03T23:12:26.949211" elapsed="0.000962"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:12:26.950896" elapsed="0.000457"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:26.950394" elapsed="0.001042"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:26.950345" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:26.966461" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:26.966746" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:26.966948" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:26.957022" elapsed="0.009980"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:26.967778" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:26.967198" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:26.969151" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.968359" elapsed="0.000899"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:26.967941" elapsed="0.001412"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:26.967157" 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-03T23:12:26.969710" elapsed="0.000392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:26.971856" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.970767" elapsed="0.001240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.970473" elapsed="0.001720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.970215" elapsed="0.002102">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.956182" elapsed="0.016365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:26.948299" elapsed="0.024446">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.976013" 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-03T23:12:28.975225" 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-03T23:12:28.976808" elapsed="0.000447"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:28.976288" elapsed="0.001071"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:28.976244" elapsed="0.001169"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:28.992096" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:28.992415" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:28.992638" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:28.982931" elapsed="0.009763"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:28.993460" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:28.992853" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:28.994818" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.994015" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:28.993628" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:28.992814" elapsed="0.002255"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:28.995407" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:28.997476" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.996414" elapsed="0.001215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.996101" elapsed="0.001676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.995833" elapsed="0.002069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.982079" elapsed="0.016070">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:28.974353" elapsed="0.024105">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:31.001102" 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-03T23:12:31.000273" 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-03T23:12:31.001869" elapsed="0.000425"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:31.001370" elapsed="0.001021"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:31.001304" elapsed="0.001140"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:31.017881" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:31.018253" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:31.018510" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:31.007927" elapsed="0.010639"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:31.019360" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:31.018724" elapsed="0.000755"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:31.020725" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:31.019904" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:31.019530" elapsed="0.001374"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:31.018685" 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-03T23:12:31.021285" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:31.023915" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:31.022318" elapsed="0.001785">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:31.021994" elapsed="0.002263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:31.021758" elapsed="0.002650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:31.007091" elapsed="0.017788">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:30.999382" elapsed="0.025729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.027703" 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-03T23:12:33.026875" 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-03T23:12:33.028496" elapsed="0.000359"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:33.027947" elapsed="0.000988"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:33.027902" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:33.044722" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:33.045013" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:33.045261" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:33.034602" elapsed="0.010714"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:33.046085" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:33.045500" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:33.047443" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.046636" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:33.046253" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:33.045460" 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-03T23:12:33.047961" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:33.049997" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.048971" elapsed="0.001212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.048682" elapsed="0.001668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.048444" elapsed="0.002126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.033726" elapsed="0.017056">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:33.025962" elapsed="0.025011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.053837" 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-03T23:12:35.052955" 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-03T23:12:35.054643" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:35.054115" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:35.054069" elapsed="0.001093"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:35.071228" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:35.071545" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:35.071774" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:35.061177" elapsed="0.010653"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:35.072652" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:35.071996" elapsed="0.000775"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:35.074057" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.073223" elapsed="0.000945"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:35.072822" elapsed="0.001418"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:35.071953" elapsed="0.002333"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:35.074613" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:35.076689" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.075638" elapsed="0.001295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.075307" elapsed="0.001811">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.075064" elapsed="0.002182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.060289" elapsed="0.017189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:35.051942" elapsed="0.025733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.080449" 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-03T23:12:37.079611" 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-03T23:12:37.081227" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:37.080694" elapsed="0.000996"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:37.080650" elapsed="0.001092"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:37.096477" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:37.096765" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:37.096964" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:37.087247" elapsed="0.009773"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:37.097780" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:37.097213" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:37.099166" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.098366" elapsed="0.001047"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:37.097944" elapsed="0.001542"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:37.097172" elapsed="0.002359"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:37.099910" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:37.101954" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.100941" elapsed="0.001196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.100649" elapsed="0.001637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.100408" elapsed="0.002031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.086402" elapsed="0.016239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:37.078638" elapsed="0.024195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.106213" 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-03T23:12:39.104728" elapsed="0.001558"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:12:39.107116" elapsed="0.000418"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:39.106494" elapsed="0.001127"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:39.106445" elapsed="0.001232"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:39.123019" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:39.123385" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:39.123706" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:39.113783" elapsed="0.009984"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:39.124591" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:39.123942" elapsed="0.000774"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:39.126062" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.125189" elapsed="0.000989"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:39.124769" elapsed="0.001484"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:39.123898" elapsed="0.002403"/>
</if>
<kw name="Status Should Be" owner="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-03T23:12:39.126648" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:39.128802" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.127720" elapsed="0.001240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.127409" elapsed="0.001742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.127134" elapsed="0.002153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.112758" elapsed="0.016777">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:39.103768" elapsed="0.025973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.132462" 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-03T23:12:41.131638" 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-03T23:12:41.133253" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:41.132701" elapsed="0.001022"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:41.132657" elapsed="0.001118"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:41.149713" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:41.150007" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:41.150255" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:41.139290" elapsed="0.011019"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:41.151071" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:41.150492" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:41.152444" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.151621" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:41.151239" elapsed="0.001377"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:41.150451" 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-03T23:12:41.152988" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:41.155065" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.154015" elapsed="0.001204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.153712" elapsed="0.001675">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.153475" elapsed="0.002040">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.138453" elapsed="0.017268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:41.130719" elapsed="0.025193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.159316" 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-03T23:12:43.158478" elapsed="0.000935"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:12:43.160141" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:43.159593" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:43.159546" elapsed="0.001138"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:43.175764" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:43.176102" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:43.176363" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:43.166409" elapsed="0.010016"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:43.177214" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:43.176598" elapsed="0.000764"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:43.178686" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.177808" elapsed="0.000987"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:43.177417" elapsed="0.001450"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:43.176553" 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-03T23:12:43.179258" elapsed="0.000351"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:43.181371" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.180291" elapsed="0.001241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.179960" elapsed="0.001723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.179722" elapsed="0.002088">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.165494" elapsed="0.016524">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:43.157549" elapsed="0.024815">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.185113" 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-03T23:12:45.184256" elapsed="0.000929"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:12:45.185895" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:45.185391" elapsed="0.001010"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:45.185317" elapsed="0.001140"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:45.201517" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:45.201807" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:45.202010" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:45.192011" elapsed="0.010099"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:45.202870" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:45.202274" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:45.204298" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.203481" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:45.203075" elapsed="0.001434"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:45.202234" 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-03T23:12:45.204864" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:45.207412" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.205892" elapsed="0.001677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.205597" elapsed="0.002127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.205350" elapsed="0.002503">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.191151" elapsed="0.017035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:45.183290" elapsed="0.025129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.211161" 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-03T23:12:47.210318" 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-03T23:12:47.211945" elapsed="0.000427"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:47.211426" elapsed="0.001028"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:47.211380" elapsed="0.001125"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:47.227523" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:47.227805" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:47.228007" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:47.218106" elapsed="0.009990"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:47.228835" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:47.228264" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:47.230269" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.229471" elapsed="0.000947"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:47.229000" elapsed="0.001488"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:47.228218" 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-03T23:12:47.230847" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:47.232874" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.231848" elapsed="0.001174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.231561" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.231302" elapsed="0.002151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.217227" elapsed="0.016438">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:47.209370" elapsed="0.024492">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.236558" 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-03T23:12:49.235723" 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-03T23:12:49.237376" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:49.236800" elapsed="0.001018"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:49.236755" elapsed="0.001115"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:49.253714" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:49.254005" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:49.254266" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:49.244001" elapsed="0.010321"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:49.255089" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:49.254510" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:49.256447" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.255643" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:49.255259" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:49.254468" 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-03T23:12:49.256968" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:49.258965" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.257964" elapsed="0.001270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.257676" elapsed="0.001736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.257444" elapsed="0.002097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.243054" elapsed="0.016693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:49.234771" elapsed="0.025176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.262683" 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-03T23:12:51.261860" 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-03T23:12:51.263491" elapsed="0.000382"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:51.262944" elapsed="0.001008"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:51.262901" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:51.279734" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:51.280020" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:51.280265" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:51.269712" elapsed="0.010607"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:51.281085" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:51.280499" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:51.282465" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.281662" elapsed="0.001010"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:51.281255" elapsed="0.001489"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:51.280459" 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-03T23:12:51.283124" elapsed="0.000388"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:51.285234" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.284193" elapsed="0.001374">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.283859" elapsed="0.001860">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.283623" elapsed="0.002221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.268805" elapsed="0.017271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:51.260913" elapsed="0.025363">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.289550" 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-03T23:12:53.288183" elapsed="0.001437"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:12:53.290350" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:53.289795" elapsed="0.001017"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:53.289750" elapsed="0.001117"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:53.305797" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:53.306124" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:53.306459" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:53.296401" elapsed="0.010120"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:53.307278" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:53.306689" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:53.308646" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.307828" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:53.307466" elapsed="0.001355"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:53.306648" 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-03T23:12:53.309197" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:53.311192" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.310190" elapsed="0.001175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.309871" elapsed="0.001646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.309639" elapsed="0.002013">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.295534" elapsed="0.016341">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:53.287232" elapsed="0.024869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.314783" 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-03T23:12:55.313960" 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-03T23:12:55.315597" elapsed="0.000360"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:55.315021" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:55.314977" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:55.331454" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:55.331753" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:55.331982" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:55.321638" elapsed="0.010447"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:55.332857" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:55.332278" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:55.334269" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.333466" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:55.333023" elapsed="0.001443"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:55.332231" 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-03T23:12:55.334811" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:55.336818" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.335808" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.335519" elapsed="0.001629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.335261" elapsed="0.002015">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.320760" elapsed="0.016745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:55.313012" elapsed="0.024689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.343115" 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-03T23:12:57.342290" 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-03T23:12:57.343870" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:57.343376" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:57.343311" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:57.359488" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:57.359783" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:57.359999" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:57.349908" elapsed="0.010178"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:57.360904" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:57.360251" elapsed="0.000802"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:57.362282" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.361491" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:57.361106" elapsed="0.001373"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:57.360205" 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-03T23:12:57.362821" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:57.364836" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.363825" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.363537" elapsed="0.001634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.363279" elapsed="0.002019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.349051" elapsed="0.016616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:57.341417" elapsed="0.024546">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.368185" 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-03T23:12:59.367631" elapsed="0.000620"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:12:59.368719" elapsed="0.000235"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:59.368391" elapsed="0.000613"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:59.368357" elapsed="0.000704"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:12:59.380072" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:12:59.380267" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:12:59.380415" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:12:59.372545" elapsed="0.007905"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:12:59.380892" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:12:59.380550" elapsed="0.000415"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:12:59.381738" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.381250" elapsed="0.000554"/>
</kw>
<status status="PASS" start="2026-10-03T23:12:59.380996" elapsed="0.000851"/>
</branch>
<status status="PASS" start="2026-10-03T23:12:59.380525" elapsed="0.001351"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-03T23:12:59.382084" elapsed="0.000200"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:12:59.383689" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.382753" elapsed="0.001039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.382572" elapsed="0.001316">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.382419" elapsed="0.001548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.371999" elapsed="0.012187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:12:59.366886" elapsed="0.017424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.386900" 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-03T23:13:01.386098" 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-03T23:13:01.387685" elapsed="0.000388"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:01.387173" elapsed="0.000982"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:01.387127" elapsed="0.001079"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:01.403647" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:01.403942" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:01.404187" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:01.393746" 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-03T23:13:01.404985" elapsed="0.000369"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:01.404429" elapsed="0.001014"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:01.406731" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.405871" elapsed="0.000963"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:01.405496" elapsed="0.001407"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:01.404388" elapsed="0.002561"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:01.407312" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:01.409411" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.408377" elapsed="0.001189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.408058" elapsed="0.001656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.407760" elapsed="0.002154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.392867" elapsed="0.017323">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:01.385177" elapsed="0.025243">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.413007" 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-03T23:13:03.412193" 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-03T23:13:03.413806" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:03.413281" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:03.413236" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:03.429600" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:03.429891" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:03.430157" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:03.420323" elapsed="0.009892"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:03.430948" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:03.430402" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:03.432392" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.431577" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:03.431184" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:03.430359" elapsed="0.002256"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:03.432919" elapsed="0.000348"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:03.434944" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.433935" elapsed="0.001281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.433641" elapsed="0.001752">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.433402" elapsed="0.002122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.419474" elapsed="0.016261">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.411265" elapsed="0.024664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-10-03T23:13:03.436142" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:11:32.234678" elapsed="91.201720">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:03.436826" elapsed="0.000046"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:03.438664" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:13:03.747231" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:13:03.747503" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:13:03.747596" 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-03T23:13:03.747680" 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-03T23:13:03.438294" elapsed="0.309433"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:03.748781" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:03.748220" elapsed="0.000649"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:03.749639" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:13:04.094634" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:13:04.094883" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:13:04.094975" 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-03T23:13:04.095177" 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-03T23:13:03.749278" elapsed="0.345952"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.096066" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:13:04.174626" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:13:04.174887" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:13:04.174987" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:13:04.175123" 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-03T23:13:04.095686" elapsed="0.079497"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.175996" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:13:04.225146" 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-03T23:13:04.175787" elapsed="0.049602"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:04.240522" level="INFO">DELETE Request : url=http://10.30.170.37: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=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:04.240628" level="INFO">DELETE Response : url=http://10.30.170.37: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-03T23:13:04.240828" 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-03T23:13:04.225822" elapsed="0.015060"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:04.249476" level="INFO">DELETE Request : url=http://10.30.170.37: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=node0r8fqkof8pv8r11tr9lp4t9hax1.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:04.249766" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:13:04.249975" 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-03T23:13:04.241237" elapsed="0.008825"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:13:03.437526" elapsed="0.812688"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-10-03T23:11:31.562206" elapsed="92.688113">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/xAOSPLftASHOOcLUxc3BZbVgVRkVN+5Quf1sCTCMgbs5rasDfsocTDAQHN/bqAgPQrwDksMEUDQ4vGSJCTzvTor1gYMIak9gMnbvQV5K9mmLWvM2xTli68vJ5fpFOtATFWZerNlPeOIS2T7twUP5amDnqb033QtfdZ+VVuX5yxaVT4MCO9NPBWXg4DhHUxZrWwV3R/qJNsk+Zf1Ft1EcWK5MFH6ULnsWuthrx0zgJrrzfy1vFUNaoK8KZ+Cbd/3r1MCl230HhbjhQwfDi1V2DXdwTOBFVdRwEDhCJNI1ZzV+2g7uL2Cc1tgz2uexTvcWK1BY4Vd/uGc5ATDxPOr","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-03T23:13:04.253543" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c99f3d510&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-03T23:13:04.253065" elapsed="0.000785"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.254507" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:13:04.272079" 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-03T23:13:04.254286" elapsed="0.017927"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.272873" 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-03T23:13:04.810999" 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-03T23:13:04.272673" elapsed="0.538582"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.812087" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:13:04.864370" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:13:04.864603" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwV...</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-03T23:13:04.811784" elapsed="0.052876"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:13:04.869180" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwV...</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-03T23:13:04.865212" elapsed="0.004070"/>
</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-03T23:13:04.252419" elapsed="0.617017"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.909948" 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-03T23:13:04.870523" elapsed="0.039591"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.921299" 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-03T23:13:04.910514" elapsed="0.010932"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-03T23:13:04.869810" elapsed="0.051764"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:13:04.922947" 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-03T23:13:04.923281" 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-03T23:13:04.922676" elapsed="0.000679"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:13:04.924152" 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-03T23:13:04.923694" elapsed="0.000511"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:13:04.924982" 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-03T23:13:04.924580" elapsed="0.000487"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:04.951079" level="INFO">PUT Request : url=http://10.30.170.37: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-03T23:13:04.951189" level="INFO">PUT Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:13:04 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:04.951411" 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-03T23:13:04.925391" elapsed="0.026075"/>
</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-03T23:13:04.951829" elapsed="0.000870"/>
</kw>
<arg>root</arg>
<arg>root</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-10-03T23:13:04.921928" elapsed="0.030898"/>
</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-03T23:13:04.955699" 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-03T23:13:04.955970" 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-03T23:13:04.955444" elapsed="0.000610"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:13:04.957084" 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-03T23:13:04.956421" elapsed="0.000751"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:04.954810" elapsed="0.002472"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:04.954221" elapsed="0.003142"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-03T23:13:04.957721" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:04.957422" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:04.954173" elapsed="0.003687"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:13:04.958713" 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-03T23:13:04.958270" elapsed="0.000499"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:13:04.959558" 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-03T23:13:04.959128" elapsed="0.000484"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:13:04.960380" 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-03T23:13:04.959931" elapsed="0.000504"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:13:04.961191" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsL...</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-03T23:13:04.960756" elapsed="0.000490"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:04.975771" level="INFO">POST Request : url=http://10.30.170.37: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=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:13:04.975880" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:04.976097" 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-03T23:13:04.961566" elapsed="0.014587"/>
</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-03T23:13:04.976533" elapsed="0.000870"/>
</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-03T23:13:04.953384" elapsed="0.024151"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:13:04.978289" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-03T23:13:05.244109" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:13:05.244469" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:13:05.244562" 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-03T23:13:05.244647" 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-03T23:13:04.977908" elapsed="0.266787"/>
</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-03T23:13:05.248127" 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-03T23:13:05.247386" elapsed="0.000800"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:13:05.248869" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:05.248374" elapsed="0.000610"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:05.248303" elapsed="0.000797"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:05.263982" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:05.264351" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:05.264571" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:05.255323" elapsed="0.009302"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:05.265510" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:05.264881" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:05.266852" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:05.266073" elapsed="0.000884"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:05.265678" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:05.264837" elapsed="0.002270"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:05.267436" 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-03T23:13:05.268454" elapsed="0.001004"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:05.268141" elapsed="0.001399"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:05.270964" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:05.269991" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:05.269707" elapsed="0.001599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:05.267863" elapsed="0.003590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:05.254466" elapsed="0.017192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:05.246583" elapsed="0.025267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:07.274706" 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-03T23:13:07.273808" 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="NOT RUN" start="2026-10-03T23:13:07.275530" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:07.274962" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:07.274914" elapsed="0.000790"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:07.291113" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:07.291630" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:07.291855" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:07.281384" elapsed="0.010526"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:07.292733" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:07.292112" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:07.294121" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:07.293298" elapsed="0.000948"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:07.292905" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:07.292067" 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-03T23:13:07.294691" 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-03T23:13:07.295794" elapsed="0.000955"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:07.295502" elapsed="0.001330"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:07.298311" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:07.297314" elapsed="0.001172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:07.296993" elapsed="0.001640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:07.295161" elapsed="0.003594">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:07.280513" elapsed="0.018448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:07.272810" elapsed="0.026374">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:09.302529" 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-03T23:13:09.301654" elapsed="0.000944"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:09.303476" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:09.302869" elapsed="0.000749"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:09.302823" elapsed="0.000850"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:09.319374" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:09.319685" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:09.319901" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:09.309590" elapsed="0.010365"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:09.320713" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:09.320145" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:09.322087" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:09.321282" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:09.320878" elapsed="0.001397"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:09.320104" 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-03T23:13:09.322676" 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-03T23:13:09.323741" elapsed="0.000962"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:09.323453" elapsed="0.001330"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:09.326222" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:09.325258" elapsed="0.001162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:09.324946" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:09.323129" elapsed="0.003578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:09.308658" elapsed="0.018248">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:09.300704" elapsed="0.026529">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:11.329836" 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-03T23:13:11.329008" 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-03T23:13:11.330801" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:11.330161" elapsed="0.000781"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:11.330105" elapsed="0.000893"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:11.345720" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:11.346016" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:11.346255" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:11.336733" elapsed="0.009575"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:11.347141" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:11.346499" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:11.348555" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:11.347742" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:11.347363" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:11.346459" elapsed="0.002310"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:11.349098" elapsed="0.000383"/>
</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-03T23:13:11.350141" elapsed="0.001469"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:11.349826" elapsed="0.001867"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:11.353223" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:11.352222" elapsed="0.001176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:11.351892" elapsed="0.001654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:11.349591" elapsed="0.004078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:11.335829" elapsed="0.018146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:11.328137" elapsed="0.026072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:13.356799" 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-03T23:13:13.355969" 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-03T23:13:13.357597" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:13.357074" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:13.356995" elapsed="0.000776"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:13.372087" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:13.372412" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:13.372611" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:13.363258" elapsed="0.009407"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:13.373424" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:13.372822" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:13.374739" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:13.373940" elapsed="0.000900"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:13.373586" elapsed="0.001322"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:13.372783" elapsed="0.002169"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:13.375284" 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-03T23:13:13.376272" elapsed="0.000956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:13.375954" elapsed="0.001354"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:13.378817" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:13.377840" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:13.377557" elapsed="0.001589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:13.375720" elapsed="0.003659">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:13.362408" elapsed="0.017181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:13.355081" elapsed="0.024698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:15.382501" 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-03T23:13:15.381674" 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-03T23:13:15.383265" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:15.382740" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:15.382697" elapsed="0.000762"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:15.397867" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:15.398189" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:15.398439" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:15.389441" elapsed="0.009053"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:15.399242" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:15.398658" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:15.400640" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:15.399809" elapsed="0.000936"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:15.399434" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:15.398616" 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-03T23:13:15.401205" 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-03T23:13:15.402202" elapsed="0.000936"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:15.401880" elapsed="0.001341"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:15.404733" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:15.403708" elapsed="0.001178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:15.403410" elapsed="0.001751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:15.401646" elapsed="0.003648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:15.388562" elapsed="0.016968">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:15.380734" elapsed="0.024993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:17.408322" 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-03T23:13:17.407520" elapsed="0.000895"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:17.409115" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:17.408591" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:17.408546" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:17.423399" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:17.423682" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:17.423881" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:17.414875" elapsed="0.009059"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:17.424699" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:17.424127" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:17.426090" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:17.425280" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:17.424864" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:17.424087" 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-03T23:13:17.426641" 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-03T23:13:17.427640" elapsed="0.000922"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:17.427351" elapsed="0.001293"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:17.430097" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:17.429121" elapsed="0.001243">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:17.428805" elapsed="0.001712">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:17.427096" elapsed="0.003544">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:17.414010" elapsed="0.016835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:17.406625" elapsed="0.024445">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:19.434364" 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-03T23:13:19.433496" 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="NOT RUN" start="2026-10-03T23:13:19.435176" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:19.434610" elapsed="0.000692"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:19.434565" elapsed="0.000811"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:19.450647" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:19.450956" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:19.451207" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:19.440974" elapsed="0.010288"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:19.452055" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:19.451446" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:19.453436" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:19.452606" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:19.452224" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:19.451405" elapsed="0.002255"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:19.453990" elapsed="0.000466"/>
</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-03T23:13:19.455130" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:19.454809" elapsed="0.001347"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:19.457652" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:19.456637" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:19.456327" elapsed="0.001655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:19.454572" elapsed="0.003569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:19.440131" elapsed="0.018235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:19.432572" elapsed="0.025994">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:21.461183" 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-03T23:13:21.460381" 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-03T23:13:21.461941" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:21.461450" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:21.461406" elapsed="0.000735"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:21.477238" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:21.477569" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:21.477768" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:21.467650" elapsed="0.010173"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:21.478715" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:21.477979" elapsed="0.000854"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:21.480111" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:21.479289" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:21.478884" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:21.477940" elapsed="0.002416"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:21.480661" 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-03T23:13:21.481661" elapsed="0.001438"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:21.481371" elapsed="0.001812"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:21.484703" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:21.483702" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:21.483366" elapsed="0.001715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:21.481111" elapsed="0.004098">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:21.466781" elapsed="0.018654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:21.459491" elapsed="0.026137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:23.488392" 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-03T23:13:23.487562" 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-03T23:13:23.489168" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:23.488639" elapsed="0.000650"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:23.488593" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:23.504365" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:23.504741" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:23.504943" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:23.494988" elapsed="0.010010"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:23.505762" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:23.505193" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:23.507142" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:23.506329" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:23.505927" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:23.505152" 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-03T23:13:23.507688" 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-03T23:13:23.508711" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:23.508408" elapsed="0.001326"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:23.511195" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:23.510221" elapsed="0.001146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:23.509900" elapsed="0.001616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:23.508145" elapsed="0.003491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:23.494145" elapsed="0.017691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:23.486626" elapsed="0.025427">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:25.514785" 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-03T23:13:25.513952" 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-03T23:13:25.515698" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:25.515179" elapsed="0.000641"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:25.515132" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:25.531897" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:25.532223" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:25.532472" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:25.521994" elapsed="0.010534"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:25.533268" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:25.532688" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:25.534630" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:25.533818" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:25.533459" elapsed="0.001346"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:25.532649" 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-03T23:13:25.535184" 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-03T23:13:25.536181" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:25.535861" elapsed="0.001333"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:25.538641" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:25.537667" elapsed="0.001121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:25.537380" elapsed="0.001553">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:25.535628" elapsed="0.003462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:25.521083" elapsed="0.018218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:25.512989" elapsed="0.026599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:27.542299" 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-03T23:13:27.541494" 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-03T23:13:27.543101" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:27.542563" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:27.542518" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:27.557800" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:27.558133" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:27.558355" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:27.548842" elapsed="0.009570"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:27.559170" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:27.558570" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:27.560542" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:27.559729" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:27.559356" elapsed="0.001361"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:27.558530" 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-03T23:13:27.561101" 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-03T23:13:27.562111" elapsed="0.001041"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:27.561790" elapsed="0.001444"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:27.564674" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:27.563703" elapsed="0.001116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:27.563417" elapsed="0.001549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:27.561544" elapsed="0.003576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:27.547971" elapsed="0.017466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:27.540533" elapsed="0.025115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:29.568747" 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-03T23:13:29.567926" elapsed="0.000885"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:13:29.569539" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:29.568984" elapsed="0.000674"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:29.568940" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:29.583720" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:29.584006" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:29.584271" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:29.575209" elapsed="0.009117"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:29.585092" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:29.584516" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:29.586472" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:29.585660" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:29.585258" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:29.584476" 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-03T23:13:29.586988" 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-03T23:13:29.588003" elapsed="0.000928"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:29.587695" elapsed="0.001316"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:29.590529" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:29.589514" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:29.589208" elapsed="0.001619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:29.587462" elapsed="0.003612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:29.574318" elapsed="0.017002">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:29.567059" elapsed="0.024483">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:31.594242" 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-03T23:13:31.593437" elapsed="0.000872"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:13:31.595065" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:31.594513" elapsed="0.000673"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:31.594468" elapsed="0.000769"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:31.609584" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:31.609865" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:31.610097" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:31.600739" elapsed="0.009415"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:31.610900" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:31.610314" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:31.612289" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:31.611481" elapsed="0.000940"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:31.611099" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:31.610274" elapsed="0.002278"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:31.612882" 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-03T23:13:31.613920" elapsed="0.003306"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:31.613633" elapsed="0.003677"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:31.618965" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:31.617918" elapsed="0.001229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:31.617498" elapsed="0.001900">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:31.613386" elapsed="0.006139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:31.599867" elapsed="0.019860">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:31.592495" elapsed="0.027423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:33.622600" 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-03T23:13:33.621758" 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-03T23:13:33.623387" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:33.622838" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:33.622795" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:33.637533" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:33.637814" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:33.638014" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:33.629130" elapsed="0.008972"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:33.638828" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:33.638262" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:33.640205" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:33.639417" elapsed="0.000893"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:33.638997" elapsed="0.001407"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:33.638222" 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-03T23:13:33.640753" 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-03T23:13:33.641759" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:33.641468" elapsed="0.001305"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:33.644237" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:33.643252" elapsed="0.001258">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:33.642936" elapsed="0.001726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:33.641211" elapsed="0.003571">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:33.628265" elapsed="0.016720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:33.620811" elapsed="0.024608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:35.648114" 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-03T23:13:35.647285" 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-03T23:13:35.648871" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:35.648377" elapsed="0.000613"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:35.648311" elapsed="0.000769"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:35.663537" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:35.663819" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:35.664066" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:35.654938" elapsed="0.009186"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:35.664851" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:35.664282" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:35.666261" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:35.665429" elapsed="0.000958"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:35.665015" elapsed="0.001445"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:35.664242" elapsed="0.002264"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:35.666809" elapsed="0.000445"/>
</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-03T23:13:35.667912" elapsed="0.000938"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:35.667624" elapsed="0.001308"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:35.670416" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:35.669436" elapsed="0.001130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:35.669131" elapsed="0.001581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:35.667387" elapsed="0.003452">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:35.654102" elapsed="0.016973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:35.646360" elapsed="0.024915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:37.673913" 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-03T23:13:37.673090" 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-03T23:13:37.674702" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:37.674187" elapsed="0.000635"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:37.674142" elapsed="0.000733"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:37.689017" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:37.689366" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:37.689568" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:37.680470" elapsed="0.009154"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:37.690473" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:37.689781" elapsed="0.000811"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:37.691861" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:37.691010" elapsed="0.000994"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:37.690644" elapsed="0.001485"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:37.689741" elapsed="0.002436"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:37.692519" 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-03T23:13:37.693522" elapsed="0.000945"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:37.693210" elapsed="0.001341"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:37.695975" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:37.695008" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:37.694711" elapsed="0.001595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:37.692944" elapsed="0.003507">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:37.679588" elapsed="0.017064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:37.672172" elapsed="0.024672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:39.700110" 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-03T23:13:39.699274" 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-03T23:13:39.700876" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:39.700377" elapsed="0.000619"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:39.700307" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:39.715421" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:39.715790" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:39.716009" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:39.706799" elapsed="0.009297"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:39.716820" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:39.716256" elapsed="0.000679"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:39.718210" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:39.717407" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:39.716985" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:39.716215" 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-03T23:13:39.718792" 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-03T23:13:39.719842" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:39.719531" elapsed="0.001326"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:39.722466" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:39.721366" elapsed="0.001252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:39.721021" elapsed="0.001744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:39.719254" elapsed="0.003633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:39.705922" elapsed="0.017200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:39.697756" elapsed="0.025565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:41.726149" 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-03T23:13:41.725267" elapsed="0.000952"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:41.727072" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:41.726524" elapsed="0.000676"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:41.726475" elapsed="0.000778"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:41.741690" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:41.741973" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:41.742242" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:41.732896" elapsed="0.009406"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:41.743104" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:41.742505" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:41.744614" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:41.743682" elapsed="0.001041"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:41.743283" elapsed="0.001516"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:41.742461" 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-03T23:13:41.745216" 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-03T23:13:41.746369" elapsed="0.001123"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:41.745995" elapsed="0.001594"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:41.750120" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:41.748231" elapsed="0.002052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:41.747795" elapsed="0.002669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:41.745727" elapsed="0.004866">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:41.731940" elapsed="0.018864">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:41.724314" elapsed="0.026789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:43.753897" 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-03T23:13:43.753102" elapsed="0.000863"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:13:43.754708" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:43.754181" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:43.754136" elapsed="0.000743"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:43.769489" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:43.769806" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:43.770002" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:43.760486" elapsed="0.009601"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:43.770820" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:43.770247" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:43.772182" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:43.771404" elapsed="0.000888"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:43.770985" elapsed="0.001400"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:43.770207" 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-03T23:13:43.772734" 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-03T23:13:43.773756" elapsed="0.000999"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:43.773437" elapsed="0.001404"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:43.776397" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:43.775383" elapsed="0.001160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:43.775018" elapsed="0.001672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:43.773183" elapsed="0.003628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:43.759621" elapsed="0.017510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:43.752115" elapsed="0.025215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:45.780410" 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-03T23:13:45.779494" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:45.781209" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:45.780662" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:45.780615" elapsed="0.000793"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:45.797796" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:45.798147" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:45.798423" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:45.787933" 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-03T23:13:45.799385" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:45.798664" elapsed="0.000847"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:45.800836" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:45.799948" elapsed="0.000993"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:45.799566" elapsed="0.001445"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:45.798618" elapsed="0.002473"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:45.801419" 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-03T23:13:45.802434" elapsed="0.000950"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:45.802113" elapsed="0.001353"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:45.804895" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:45.803912" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:45.803628" elapsed="0.001599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:45.801845" elapsed="0.003611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:45.786954" elapsed="0.018711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:45.778511" elapsed="0.027347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:47.808673" 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-03T23:13:47.807813" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:47.809466" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:47.808917" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:47.808870" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:47.824769" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:47.825097" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:47.825301" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:47.815174" elapsed="0.010205"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:47.826146" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:47.825540" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:47.827554" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:47.826709" elapsed="0.000954"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:47.826312" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:47.825499" elapsed="0.002278"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:47.828108" 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-03T23:13:47.829113" elapsed="0.001075"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:47.828795" elapsed="0.001496"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:47.831759" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:47.830775" elapsed="0.001133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:47.830487" elapsed="0.001704">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:47.828562" elapsed="0.003758">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:47.814297" elapsed="0.018252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:47.806821" elapsed="0.025920">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:49.836011" 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-03T23:13:49.835212" 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-03T23:13:49.836848" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:49.836291" elapsed="0.000680"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:49.836246" elapsed="0.000814"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:49.851737" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:49.852065" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:49.852295" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:49.842661" elapsed="0.009711"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:49.853111" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:49.852534" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:49.854547" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:49.853701" elapsed="0.000950"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:49.853280" elapsed="0.001439"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:49.852493" elapsed="0.002270"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:49.855153" elapsed="0.000395"/>
</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-03T23:13:49.856241" elapsed="0.000956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:49.855919" elapsed="0.001360"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:49.858737" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:49.857745" elapsed="0.001231">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:49.857461" elapsed="0.001701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:49.855680" elapsed="0.003605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:49.841790" elapsed="0.017776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:49.833689" elapsed="0.026075">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:51.862550" 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-03T23:13:51.861703" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:51.863318" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:51.862791" elapsed="0.000690"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:51.862746" elapsed="0.000798"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:51.878686" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:51.878968" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:51.879216" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:51.869231" elapsed="0.010041"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:51.880011" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:51.879465" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:51.881450" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:51.880625" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:51.880226" elapsed="0.001402"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:51.879425" 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-03T23:13:51.881973" elapsed="0.000469"/>
</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-03T23:13:51.883117" elapsed="0.001411"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:51.882797" elapsed="0.001815"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:51.886143" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:51.885101" elapsed="0.001195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:51.884779" elapsed="0.001686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:51.882558" elapsed="0.004029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:51.868332" elapsed="0.018458">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:51.860743" elapsed="0.026237">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:53.889745" 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-03T23:13:53.888888" elapsed="0.000926"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:13:53.890556" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:53.889997" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:53.889948" elapsed="0.000781"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:53.906018" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:53.906367" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:53.906567" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:53.896328" elapsed="0.010293"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:53.907476" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:53.906776" elapsed="0.000818"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:53.908836" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:53.908019" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:53.907645" elapsed="0.001366"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:53.906737" elapsed="0.002355"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:53.909413" elapsed="0.000321"/>
</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-03T23:13:53.910420" elapsed="0.000944"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:53.910115" elapsed="0.001330"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:53.912866" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:53.911887" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:53.911605" elapsed="0.001590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:53.909843" elapsed="0.003473">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:53.895480" elapsed="0.018062">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:53.887930" elapsed="0.025802">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:55.916500" 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-03T23:13:55.915652" 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-03T23:13:55.917310" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:55.916748" elapsed="0.000713"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:55.916702" elapsed="0.000811"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:55.932820" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:55.933270" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:55.933534" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:55.923543" elapsed="0.010049"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:55.934376" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:55.933754" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:55.935738" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:55.934915" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:55.934550" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:55.933713" 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-03T23:13:55.936293" 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-03T23:13:55.937324" elapsed="0.000951"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:55.936999" elapsed="0.001387"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:55.939861" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:55.938866" elapsed="0.001148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:55.938559" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:55.936757" elapsed="0.003566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:55.922662" elapsed="0.017897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:55.914708" elapsed="0.026047">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:57.943509" 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-03T23:13:57.942676" 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-03T23:13:57.944424" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:57.943849" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:57.943805" elapsed="0.000793"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:57.960742" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:57.961023" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:57.961260" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:57.950249" elapsed="0.011065"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:57.962095" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:57.961492" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:57.963478" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:57.962669" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:57.962263" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:57.961451" 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-03T23:13:57.964004" elapsed="0.000368"/>
</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-03T23:13:57.965006" elapsed="0.000945"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:57.964720" elapsed="0.001342"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:57.967499" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:57.966531" elapsed="0.001119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:57.966228" elapsed="0.001570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:57.964485" elapsed="0.003436">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:57.949394" elapsed="0.018776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:57.941727" elapsed="0.026728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:59.971760" 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-03T23:13:59.970943" 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-03T23:13:59.972546" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:59.972001" elapsed="0.000666"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:59.971956" elapsed="0.000763"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:13:59.990973" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:13:59.991318" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:13:59.991561" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:13:59.978283" elapsed="0.013331"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:13:59.992381" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:13:59.991771" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:13:59.993820" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:13:59.992914" elapsed="0.001010"/>
</kw>
<status status="PASS" start="2026-10-03T23:13:59.992547" elapsed="0.001447"/>
</branch>
<status status="PASS" start="2026-10-03T23:13:59.991731" elapsed="0.002340"/>
</if>
<kw name="Status Should Be" owner="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-03T23:13:59.994394" 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-03T23:13:59.995404" elapsed="0.001031"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:13:59.995082" elapsed="0.001436"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:13:59.998099" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:59.996964" elapsed="0.001293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:13:59.996682" elapsed="0.001750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:13:59.994816" elapsed="0.003740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:59.977423" elapsed="0.021420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:13:59.970074" elapsed="0.028993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:02.001855" 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-03T23:14:02.001015" 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-03T23:14:02.002675" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:02.002133" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:02.002084" elapsed="0.000760"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:02.017712" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:02.017994" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:02.018239" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:02.008542" elapsed="0.009754"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:02.019023" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:02.018481" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:02.020436" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:02.019606" elapsed="0.000936"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:02.019223" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:02.018440" 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-03T23:14:02.020952" 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-03T23:14:02.021953" elapsed="0.001428"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:02.021656" elapsed="0.001808"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:02.024904" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:02.023919" elapsed="0.001169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:02.023631" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:02.021423" elapsed="0.004055">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:02.007647" elapsed="0.018043">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:02.000082" elapsed="0.025801">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:04.028646" 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-03T23:14:04.027800" 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-03T23:14:04.029436" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:04.028890" elapsed="0.000664"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:04.028845" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:04.044902" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:04.045234" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:04.045459" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:04.035288" elapsed="0.010226"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:04.046247" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:04.045673" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:04.047600" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:04.046793" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:04.046435" elapsed="0.001338"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:04.045632" elapsed="0.002186"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-03T23:14:04.048145" 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-03T23:14:04.049160" elapsed="0.001000"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:04.048825" elapsed="0.001420"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:04.051694" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:04.050720" elapsed="0.001121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:04.050432" elapsed="0.001672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:04.048593" elapsed="0.003641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:04.034444" elapsed="0.018019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:04.026845" elapsed="0.025813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:06.055316" 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-03T23:14:06.054485" 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-03T23:14:06.056263" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:06.055591" elapsed="0.000813"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:06.055541" elapsed="0.000917"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:06.071155" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:06.071476" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:06.071700" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:06.062561" elapsed="0.009194"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:06.072522" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:06.071912" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:06.073876" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:06.073093" elapsed="0.000888"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:06.072691" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:06.071873" 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-03T23:14:06.074481" elapsed="0.000319"/>
</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-03T23:14:06.075503" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:06.075178" elapsed="0.001335"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:06.078090" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:06.076962" elapsed="0.001372">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:06.076678" elapsed="0.001839">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:06.074911" elapsed="0.003726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:06.061689" elapsed="0.017151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:06.053573" elapsed="0.025508">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:08.082002" 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-03T23:14:08.081004" 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="NOT RUN" start="2026-10-03T23:14:08.082816" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:08.082282" elapsed="0.000654"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:08.082233" elapsed="0.000756"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:08.097902" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:08.098255" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:08.098500" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:08.088608" elapsed="0.009948"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:08.099321" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:08.098716" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:08.100722" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:08.099904" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:08.099519" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:08.098676" 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-03T23:14:08.101288" elapsed="0.000519"/>
</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-03T23:14:08.102505" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:08.102197" elapsed="0.001331"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:08.104952" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:08.103973" elapsed="0.001171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:08.103691" elapsed="0.001613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:08.101922" elapsed="0.003531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:08.087723" elapsed="0.017974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:08.079985" elapsed="0.025912">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:10.109162" 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-03T23:14:10.108360" elapsed="0.000869"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:10.109913" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:10.109422" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:10.109376" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:10.124744" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:10.125064" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:10.125294" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:10.115613" elapsed="0.009760"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:10.126201" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:10.125533" elapsed="0.000784"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:10.127563" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:10.126754" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:10.126393" elapsed="0.001341"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:10.125494" 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-03T23:14:10.128105" 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-03T23:14:10.129116" elapsed="0.000992"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:10.128784" elapsed="0.001404"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:10.131625" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:10.130658" elapsed="0.001115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:10.130372" elapsed="0.001543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:10.128549" elapsed="0.003517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:10.114746" elapsed="0.017527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:10.107470" elapsed="0.025016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:12.135241" 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-03T23:14:12.134417" 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="NOT RUN" start="2026-10-03T23:14:12.136023" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:12.135505" elapsed="0.000666"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:12.135459" elapsed="0.000765"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:12.150471" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:12.150842" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:12.151075" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:12.141783" elapsed="0.009350"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:12.151860" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:12.151291" elapsed="0.000685"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:12.153308" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:12.152507" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:12.152058" elapsed="0.001451"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:12.151251" 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-03T23:14:12.153855" 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-03T23:14:12.154886" elapsed="0.003298"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:12.154565" elapsed="0.003703"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:12.159751" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:12.158758" elapsed="0.001172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:12.158463" elapsed="0.001664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:12.154307" elapsed="0.005947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:12.140916" elapsed="0.019562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:12.133468" elapsed="0.027200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:14.163445" 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-03T23:14:14.162614" 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="NOT RUN" start="2026-10-03T23:14:14.164302" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:14.163776" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:14.163730" elapsed="0.000761"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:14.179297" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:14.179608" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:14.179805" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:14.170425" elapsed="0.009435"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:14.180635" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:14.180018" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:14.182114" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:14.181296" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:14.180825" elapsed="0.001467"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:14.179978" 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-03T23:14:14.182660" 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-03T23:14:14.183660" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:14.183371" elapsed="0.001308"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:14.186140" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:14.185155" elapsed="0.001136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:14.184841" elapsed="0.001617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:14.183113" elapsed="0.003472">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:14.169385" elapsed="0.017402">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:14.161665" elapsed="0.025413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:16.189826" 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-03T23:14:16.188985" 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-03T23:14:16.190639" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:16.190113" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:16.190062" elapsed="0.000748"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:16.241578" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:16.241784" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:16.242072" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:16.233873" elapsed="0.008259"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:16.242926" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:16.242310" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:16.244335" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:16.243516" elapsed="0.000945"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:16.243129" elapsed="0.001403"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:16.242266" elapsed="0.002312"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:16.244878" 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-03T23:14:16.245900" elapsed="0.000930"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:16.245606" elapsed="0.001306"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:16.248506" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:16.247510" elapsed="0.001146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:16.247154" elapsed="0.001650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:16.245343" elapsed="0.003582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:16.233218" elapsed="0.016058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:16.187987" elapsed="0.061510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:18.252293" 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-03T23:14:18.251382" elapsed="0.001037"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:18.253485" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:18.252675" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:18.252610" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:18.268766" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:18.269118" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:18.269326" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:18.259759" elapsed="0.009644"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:18.270150" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:18.269564" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:18.271738" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:18.270886" elapsed="0.000959"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:18.270406" elapsed="0.001510"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:18.269523" elapsed="0.002438"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:18.272298" elapsed="0.000343"/>
</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-03T23:14:18.273322" elapsed="0.001313"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:18.272998" elapsed="0.001719"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:18.276213" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:18.275204" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:18.274883" elapsed="0.001654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:18.272757" elapsed="0.004003">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:18.258870" elapsed="0.018101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:18.250457" elapsed="0.026741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:20.279919" 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-03T23:14:20.279108" elapsed="0.000878"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:20.280712" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:20.280195" elapsed="0.000635"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:20.280151" elapsed="0.000732"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:20.294702" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:20.294983" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:20.295218" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:20.286475" elapsed="0.008798"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:20.296009" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:20.295459" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:20.297409" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:20.296598" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:20.296209" elapsed="0.001380"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:20.295416" 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-03T23:14:20.297936" 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-03T23:14:20.298947" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:20.298658" elapsed="0.001304"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:20.301446" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:20.300469" elapsed="0.001122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:20.300155" elapsed="0.001671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:20.298421" elapsed="0.003531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:20.285595" elapsed="0.016594">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:20.278152" elapsed="0.024251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:22.305312" 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-03T23:14:22.304461" elapsed="0.000964"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:22.306169" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:22.305617" elapsed="0.000676"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:22.305570" elapsed="0.000813"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:22.321397" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:22.321738" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:22.321973" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:22.312802" 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-03T23:14:22.322884" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:22.322268" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:22.324339" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:22.323517" elapsed="0.000970"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:22.323093" elapsed="0.001468"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:22.322224" 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-03T23:14:22.324942" 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-03T23:14:22.326007" elapsed="0.000992"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:22.325713" elapsed="0.001407"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:22.328723" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:22.327630" elapsed="0.001341">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:22.327289" elapsed="0.001872">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:22.325465" elapsed="0.003821">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:22.311859" elapsed="0.017689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:22.303419" elapsed="0.026328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:24.332533" 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-03T23:14:24.331627" elapsed="0.000977"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-03T23:14:24.333320" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:24.332784" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:24.332738" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:24.348139" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:24.348462" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:24.348662" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:24.339092" elapsed="0.009624"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:24.349489" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:24.348876" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:24.350817" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:24.350012" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:24.349652" elapsed="0.001342"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:24.348836" elapsed="0.002236"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:24.351403" elapsed="0.000973"/>
</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-03T23:14:24.353084" elapsed="0.001124"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:24.352752" elapsed="0.001542"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:24.355765" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:24.354776" elapsed="0.001139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:24.354485" elapsed="0.001609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:24.352503" elapsed="0.003716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:24.338212" elapsed="0.018232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:24.330686" elapsed="0.025953">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:26.359933" 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-03T23:14:26.359135" 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="NOT RUN" start="2026-10-03T23:14:26.360727" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:26.360201" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:26.360157" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:26.374999" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:26.375331" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:26.375577" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:26.366562" elapsed="0.009069"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:26.376496" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:26.375788" elapsed="0.000826"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:26.377842" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:26.377060" elapsed="0.000886"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:26.376666" elapsed="0.001352"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:26.375748" elapsed="0.002349"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:26.378430" 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-03T23:14:26.379444" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:26.379131" elapsed="0.001336"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:26.381897" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:26.380918" elapsed="0.001161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:26.380630" elapsed="0.001607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:26.378862" elapsed="0.003527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:26.365593" elapsed="0.017006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:26.358208" elapsed="0.024588">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:28.385586" 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-03T23:14:28.384742" 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-03T23:14:28.386387" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:28.385828" elapsed="0.000681"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:28.385783" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:28.400871" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:28.401288" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:28.401519" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:28.392540" elapsed="0.009035"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:28.402335" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:28.401739" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:28.403718" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:28.402891" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:28.402526" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:28.401698" 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-03T23:14:28.404289" elapsed="0.000343"/>
</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-03T23:14:28.405310" elapsed="0.001451"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:28.404984" elapsed="0.001860"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:28.408329" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:28.407335" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:28.407008" elapsed="0.001647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:28.404747" elapsed="0.004031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:28.391641" elapsed="0.017342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:28.383779" elapsed="0.025437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:30.410708" 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-03T23:14:30.410305" elapsed="0.000436"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:30.411157" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:30.410897" elapsed="0.000314"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:30.410872" elapsed="0.000364"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:30.420630" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:30.420915" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:30.421148" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:30.413725" elapsed="0.007478"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:30.421920" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:30.421380" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:30.423264" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:30.422496" elapsed="0.000892"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:30.422113" elapsed="0.001345"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:30.421319" 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-03T23:14:30.423804" 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-03T23:14:30.424785" elapsed="0.000912"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:30.424502" elapsed="0.001272"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:30.427191" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:30.426242" elapsed="0.001100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:30.425934" elapsed="0.001578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:30.424249" elapsed="0.003385">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:30.413343" elapsed="0.014490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:30.409819" elapsed="0.018302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:32.430779" 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-03T23:14:32.429952" 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="NOT RUN" start="2026-10-03T23:14:32.431585" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:32.431017" elapsed="0.000689"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:32.430973" elapsed="0.000784"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:32.446176" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:32.446483" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:32.446703" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:32.437751" elapsed="0.009007"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:32.447536" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:32.446918" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:32.448887" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:32.448097" elapsed="0.000894"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:32.447705" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:32.446877" 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-03T23:14:32.449473" 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-03T23:14:32.450483" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:32.450167" elapsed="0.001334"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:32.452932" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:32.451952" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:32.451666" elapsed="0.001600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:32.449900" elapsed="0.003510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:32.436855" elapsed="0.016920">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:32.429075" elapsed="0.024911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:34.456879" 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-03T23:14:34.455972" elapsed="0.000974"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:34.457683" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:34.457155" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:34.457107" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:34.471743" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:34.472085" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:34.472305" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:34.463480" elapsed="0.008906"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:34.473124" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:34.472545" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:34.474473" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:34.473673" elapsed="0.000904"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:34.473289" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:34.472505" 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-03T23:14:34.474990" elapsed="0.000343"/>
</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-03T23:14:34.476076" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:34.475747" elapsed="0.001374"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:34.478656" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:34.477603" elapsed="0.001210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:34.477289" elapsed="0.001674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:34.475486" elapsed="0.003750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:34.462550" elapsed="0.016934">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:34.455014" elapsed="0.024687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:36.482929" 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-03T23:14:36.482132" elapsed="0.000862"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:14:36.483720" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:36.483198" elapsed="0.000641"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:36.483154" elapsed="0.000737"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:36.498329" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:36.498652" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:36.498876" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:36.489462" elapsed="0.009468"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:36.499787" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:36.499175" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:36.501153" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:36.500346" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:36.499953" elapsed="0.001376"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:36.499108" 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-03T23:14:36.501699" 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-03T23:14:36.502711" elapsed="0.000930"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:14:36.502423" elapsed="0.001299"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:36.505181" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:36.504203" elapsed="0.001129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-03T23:14:36.503886" elapsed="0.001715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:36.502164" elapsed="0.003564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:36.488584" elapsed="0.017350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-03T23:14:36.481243" elapsed="0.024929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-10-03T23:14:36.506375" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:13:05.245237" elapsed="91.261361">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:36.507021" elapsed="0.000077"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:36.508912" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:14:36.817439" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:14:36.817776" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:14:36.817867" 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-03T23:14:36.817950" 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-03T23:14:36.508557" elapsed="0.309442"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:36.819225" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:36.818589" elapsed="0.000724"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:36.820090" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:14:37.167570" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:14:37.167923" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:14:37.168012" 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-03T23:14:37.168139" 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-03T23:14:36.819717" elapsed="0.348474"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.169144" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:14:37.247444" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:14:37.247771" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:14:37.247862" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:14:37.247945" 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-03T23:14:37.168716" elapsed="0.079280"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.248923" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:14:37.297125" 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-03T23:14:37.248668" elapsed="0.048585"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:37.314678" level="INFO">DELETE Request : url=http://10.30.170.37: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=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:37.314774" level="INFO">DELETE Response : url=http://10.30.170.37: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-03T23:14:37.314956" 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-03T23:14:37.297597" elapsed="0.017411"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:37.323113" level="INFO">DELETE Request : url=http://10.30.170.37: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=node014skw7lsn0h6o2g8hr79b4mu62.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:37.323413" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:14:37.323619" 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-03T23:14:37.315391" elapsed="0.008283"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:14:36.507758" elapsed="0.816058"/>
</kw>
<doc>CallHome SSH device registered with global credentials should result to successful mount.</doc>
<status status="FAIL" start="2026-10-03T23:13:04.251014" elapsed="93.072901">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCykJVrnD7gZiC/BraKIbTc10k9TER8Mo5lw9MH45gol3IKP4/jWjzwNsRXIzsLHKYvkzI5IgG41sFE8C/cK7+UP4JsGpgMtO579nXUwBwkc6XR5CK6jzrmQicXtBOUtMEVgoyeZjGED5aPfREYos+h6pOCDAlA/g7bFterfjwVUvTczfiQfU8jUuwHjhWK3Ap5TNtHj4eZzn8kJoNnCHblwmC6n/lOuwCHNI2CP3+puIN0FJRKgOkwy7pTblk5NdPw2QOHGpYTOEOUDKZITRmoWb4nFyOkicJWn1LPGGs2RBSl/1NMO666I2oaznijBfICyt4XTQc+k9hLyRtOM5YN"}}]}}}' 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-03T23:14:37.327618" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c99f41650&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-03T23:14:37.326636" elapsed="0.001340"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.328777" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:14:37.345085" 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-03T23:14:37.328536" elapsed="0.016669"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.345814" 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-03T23:14:37.701390" 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-03T23:14:37.345614" elapsed="0.355963"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.702339" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:14:37.757010" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:14:37.757278" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+Uh...</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-03T23:14:37.702079" elapsed="0.055255"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:14:37.761070" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+Uh...</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-03T23:14:37.757754" elapsed="0.003413"/>
</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-03T23:14:37.325975" elapsed="0.435323"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.801926" 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-03T23:14:37.762418" elapsed="0.039686"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.811118" 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-03T23:14:37.802601" elapsed="0.008637"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-03T23:14:37.761685" elapsed="0.049703"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:14:37.812777" 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-03T23:14:37.813081" 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-03T23:14:37.812506" elapsed="0.000630"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:14:37.813923" 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-03T23:14:37.813498" elapsed="0.000478"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:14:37.814752" 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-03T23:14:37.814333" elapsed="0.000472"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:37.836795" level="INFO">PUT Request : url=http://10.30.170.37: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-03T23:14:37.836900" level="INFO">PUT Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=204, reason=No Content 
 headers={'Set-Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:14:37 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:37.837132" 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-03T23:14:37.815132" elapsed="0.022053"/>
</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-03T23:14:37.837567" elapsed="0.000888"/>
</kw>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-10-03T23:14:37.811757" elapsed="0.026823"/>
</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-03T23:14:37.841334" 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-03T23:14:37.841618" 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-03T23:14:37.841076" elapsed="0.000595"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:14:37.842718" 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-03T23:14:37.842019" elapsed="0.000785"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:37.840469" elapsed="0.002443"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:37.839856" elapsed="0.003103"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-03T23:14:37.843340" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:37.843012" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:37.839811" elapsed="0.003696"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:14:37.844256" 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-03T23:14:37.843809" elapsed="0.000502"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:14:37.845088" 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-03T23:14:37.844660" elapsed="0.000483"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:14:37.845878" 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-03T23:14:37.845488" elapsed="0.000444"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:14:37.846790" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzsp...</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-03T23:14:37.846388" elapsed="0.000457"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:37.859109" level="INFO">POST Request : url=http://10.30.170.37: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=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:14:37.859217" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:37.859421" 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-03T23:14:37.847183" elapsed="0.012291"/>
</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-03T23:14:37.859836" elapsed="0.000805"/>
</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-03T23:14:37.839101" elapsed="0.021665"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:14:37.861536" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-03T23:14:38.127651" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:14:38.127963" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:14:38.128092" 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-03T23:14:38.128181" 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-03T23:14:37.861171" elapsed="0.267057"/>
</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-03T23:14:38.132151" 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-03T23:14:38.131407" elapsed="0.000802"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:14:38.132876" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:38.132388" elapsed="0.000981"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:38.132323" elapsed="0.001100"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:38.146903" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:38.147229" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:38.147479" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:38.138986" elapsed="0.008553"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:38.148320" elapsed="0.000080"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:38.147719" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:38.149739" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:38.148912" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:38.148522" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:38.147674" 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-03T23:14:38.150430" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:38.152461" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:38.151447" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:38.151131" elapsed="0.001623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:38.150860" elapsed="0.002019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:38.138145" elapsed="0.014969">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:38.130622" elapsed="0.022691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:40.155568" 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-03T23:14:40.154996" elapsed="0.000619"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:14:40.156076" elapsed="0.000234"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:40.155734" elapsed="0.000643"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:40.155704" elapsed="0.000708"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:40.166722" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:40.166914" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:40.167068" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:40.159824" elapsed="0.007280"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:40.167582" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:40.167210" elapsed="0.000445"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:40.168507" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:40.167993" elapsed="0.000580"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:40.167757" elapsed="0.000861"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:40.167185" elapsed="0.001464"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:40.168844" elapsed="0.000221"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:40.170424" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:40.169489" elapsed="0.001033">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:40.169289" elapsed="0.001328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:40.169139" elapsed="0.001558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:40.159293" elapsed="0.011536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:40.154168" elapsed="0.016792">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:42.173511" 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-03T23:14:42.172674" 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-03T23:14:42.174284" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:42.173751" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:42.173707" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:42.188620" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:42.188910" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:42.189239" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:42.180357" elapsed="0.008938"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:42.190054" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:42.189476" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:42.191474" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:42.190669" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:42.190224" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:42.189435" 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-03T23:14:42.191997" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:42.194001" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:42.193001" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:42.192712" elapsed="0.001624">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:42.192476" elapsed="0.002006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:42.179470" elapsed="0.015213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:42.171770" elapsed="0.023106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:44.197690" 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-03T23:14:44.196834" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:14:44.198485" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:44.197934" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:44.197889" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:44.213410" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:44.213781" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:44.214003" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:44.205003" elapsed="0.009088"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:44.214865" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:44.214254" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:44.216261" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:44.215464" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:44.215068" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:44.214213" 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-03T23:14:44.216808" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:44.218857" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:44.217813" elapsed="0.001194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:44.217520" elapsed="0.001670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:44.217262" elapsed="0.002054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:44.204154" elapsed="0.015390">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:44.195848" elapsed="0.023893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:46.222592" 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-03T23:14:46.221715" 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-03T23:14:46.223423" elapsed="0.000479"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:46.222839" elapsed="0.001146"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:46.222793" elapsed="0.001279"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:46.238749" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:46.239084" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:46.239319" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:46.229919" 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-03T23:14:46.240226" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:46.239624" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:46.241671" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:46.240814" elapsed="0.000966"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:46.240445" elapsed="0.001409"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:46.239581" 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-03T23:14:46.242250" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:46.244408" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:46.243305" elapsed="0.001264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:46.242977" elapsed="0.001742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:46.242740" elapsed="0.002103">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:46.228994" elapsed="0.016091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:46.220746" elapsed="0.024539">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:48.248601" 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-03T23:14:48.247261" elapsed="0.001406"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:14:48.249407" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:48.248840" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:48.248796" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:48.263827" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:48.264207" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:48.264483" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:48.255470" elapsed="0.009072"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:48.265539" elapsed="0.000067"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:48.264755" elapsed="0.000934"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:48.267240" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:48.266232" elapsed="0.001140"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:48.265755" elapsed="0.001693"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:48.264697" elapsed="0.002799"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:48.267805" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:48.269891" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:48.268849" elapsed="0.001236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:48.268552" elapsed="0.001688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:48.268283" elapsed="0.002119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:48.254599" elapsed="0.016019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:48.246372" elapsed="0.024540">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:50.273669" 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-03T23:14:50.272777" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:14:50.274471" elapsed="0.000401"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:50.273911" elapsed="0.001063"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:50.273866" elapsed="0.001194"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:50.288876" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:50.289205" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:50.289427" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:50.280553" elapsed="0.008930"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:50.290220" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:50.289642" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:50.291596" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:50.290781" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:50.290420" elapsed="0.001351"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:50.289602" 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-03T23:14:50.292150" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:50.294240" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:50.293178" elapsed="0.001232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:50.292855" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:50.292614" elapsed="0.002063">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:50.279690" elapsed="0.015277">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:50.271863" elapsed="0.023332">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:52.300722" 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-03T23:14:52.299851" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:14:52.301519" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:52.300962" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:52.300917" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:52.315677" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:52.315957" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:52.316209" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:52.307585" elapsed="0.008680"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:52.317019" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:52.316472" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:52.318415" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:52.317611" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:52.317223" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:52.316416" 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-03T23:14:52.318934" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:52.320973" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:52.319933" elapsed="0.001224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:52.319641" elapsed="0.001664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:52.319407" elapsed="0.002135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:52.306716" elapsed="0.015035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:52.298923" elapsed="0.023021">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:54.324692" 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-03T23:14:54.323815" elapsed="0.000944"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:14:54.325528" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:54.324961" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:54.324914" elapsed="0.001141"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:54.339875" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:54.340204" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:54.340429" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:54.331682" elapsed="0.008801"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:54.341231" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:54.340644" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:54.342596" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:54.341788" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:54.341424" elapsed="0.001347"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:54.340603" 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-03T23:14:54.343154" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:54.345673" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:54.344165" elapsed="0.001658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:54.343843" elapsed="0.002250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:54.343603" elapsed="0.002621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:54.330805" elapsed="0.015649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:54.322875" elapsed="0.023776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:56.349386" 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-03T23:14:56.348553" 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-03T23:14:56.350163" elapsed="0.000446"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:56.349630" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:56.349585" elapsed="0.001163"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:56.364512" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:56.364793" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:56.364994" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:56.356408" elapsed="0.008673"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:56.365915" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:56.365243" elapsed="0.000818"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:56.367468" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:56.366586" elapsed="0.000985"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:56.366116" elapsed="0.001524"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:56.365202" 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-03T23:14:56.367990" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:56.370090" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:56.369065" elapsed="0.001294">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:56.368744" elapsed="0.001769">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:56.368501" elapsed="0.002136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:56.355532" elapsed="0.015309">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:56.347609" elapsed="0.023453">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:58.373831" 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-03T23:14:58.372993" 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-03T23:14:58.374691" elapsed="0.000431"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:58.374132" elapsed="0.001079"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:58.374081" elapsed="0.001184"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:14:58.389605" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:14:58.389904" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:14:58.390168" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:14:58.381628" elapsed="0.008596"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:14:58.390983" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:14:58.390410" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:14:58.392567" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:14:58.391733" elapsed="0.000937"/>
</kw>
<status status="PASS" start="2026-10-03T23:14:58.391282" elapsed="0.001457"/>
</branch>
<status status="PASS" start="2026-10-03T23:14:58.390367" elapsed="0.002415"/>
</if>
<kw name="Status Should Be" owner="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-03T23:14:58.393213" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:14:58.395270" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:58.394265" elapsed="0.001217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:58.393937" elapsed="0.001696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:14:58.393668" elapsed="0.002088">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:58.380724" elapsed="0.015238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:58.372021" elapsed="0.024171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:00.398643" 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-03T23:15:00.398011" elapsed="0.000680"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:00.399190" elapsed="0.000299"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:00.398814" elapsed="0.000740"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:00.398782" elapsed="0.000815"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:00.410590" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:00.410791" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:00.410918" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:00.403205" elapsed="0.007746"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:00.411452" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:00.411079" elapsed="0.000444"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:00.412372" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:00.411855" elapsed="0.000583"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:00.411618" elapsed="0.000864"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:00.411051" elapsed="0.001460"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-03T23:15:00.412704" elapsed="0.000200"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:00.413959" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:00.413351" elapsed="0.000728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:00.413149" elapsed="0.001025">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:00.412976" elapsed="0.001276">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:00.402659" elapsed="0.011742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:00.397176" elapsed="0.017348">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:02.417671" 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-03T23:15:02.416308" elapsed="0.001431"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:02.418479" elapsed="0.000372"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:02.417913" elapsed="0.001020"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:02.417869" elapsed="0.001117"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:02.434261" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:02.434565" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:02.434865" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:02.425079" 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-03T23:15:02.435705" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:02.435120" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:02.437086" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:02.436293" elapsed="0.000902"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:02.435873" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:02.435077" 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-03T23:15:02.437648" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:02.439677" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:02.438663" elapsed="0.001164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:02.438366" elapsed="0.001609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:02.438109" elapsed="0.002024">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:02.424197" elapsed="0.016168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:02.415409" elapsed="0.025155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:04.443261" 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-03T23:15:04.442462" 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-03T23:15:04.444016" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:04.443520" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:04.443476" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:04.459176" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:04.459625" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:04.459831" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:04.450461" elapsed="0.009424"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:04.460735" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:04.460131" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:04.462110" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:04.461321" elapsed="0.000897"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:04.460903" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:04.460003" 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-03T23:15:04.462675" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:04.464690" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:04.463681" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:04.463389" elapsed="0.001600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:04.463134" elapsed="0.002014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:04.449576" elapsed="0.015794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:04.441555" elapsed="0.024012">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:06.468782" 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-03T23:15:06.467960" 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-03T23:15:06.469578" elapsed="0.000493"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:06.469017" elapsed="0.001138"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:06.468974" elapsed="0.001234"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:06.484430" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:06.484712" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:06.484934" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:06.475780" elapsed="0.009211"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:06.485768" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:06.485187" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:06.487684" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:06.486361" elapsed="0.001440"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:06.485939" elapsed="0.001939"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:06.485145" elapsed="0.002779"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:06.488303" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:06.490639" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:06.489586" elapsed="0.001209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:06.488997" elapsed="0.001949">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:06.488752" elapsed="0.002353">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:06.474895" elapsed="0.016447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:06.467090" elapsed="0.024450">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:08.494515" 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-03T23:15:08.493654" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:08.495334" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:08.494766" elapsed="0.001017"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:08.494718" elapsed="0.001118"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:08.510165" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:08.510535" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:08.510768" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:08.501361" elapsed="0.009464"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:08.511595" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:08.510986" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:08.513054" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:08.512157" elapsed="0.001007"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:08.511761" elapsed="0.001474"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:08.510945" 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-03T23:15:08.513606" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:08.516306" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:08.514624" elapsed="0.001835">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:08.514330" elapsed="0.002278">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:08.514068" elapsed="0.002663">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:08.500479" elapsed="0.016459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:08.492614" elapsed="0.024639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:10.519995" 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-03T23:15:10.519192" 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-03T23:15:10.520820" elapsed="0.000400"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:10.520299" elapsed="0.001030"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:10.520228" elapsed="0.001154"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:10.535920" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:10.536280" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:10.536518" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:10.527481" elapsed="0.009095"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:10.537392" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:10.536743" elapsed="0.000778"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:10.538807" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:10.537948" elapsed="0.000968"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:10.537574" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:10.536701" 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-03T23:15:10.539439" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:10.541596" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:10.540528" elapsed="0.001218">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:10.540170" elapsed="0.001724">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:10.539891" elapsed="0.002125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:10.526541" elapsed="0.015826">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:10.518232" elapsed="0.024335">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:12.545364" 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-03T23:15:12.544509" 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-03T23:15:12.546171" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:12.545626" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:12.545578" elapsed="0.001143"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:12.561497" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:12.561811" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:12.562067" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:12.552910" elapsed="0.009217"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:12.562895" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:12.562314" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:12.564403" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:12.563520" elapsed="0.000996"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:12.563098" elapsed="0.001490"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:12.562272" elapsed="0.002362"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:12.564967" elapsed="0.000394"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:12.567145" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:12.566083" elapsed="0.001238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:12.565748" elapsed="0.001720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:12.565498" elapsed="0.002239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:12.551994" elapsed="0.015966">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:12.543541" elapsed="0.024655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:14.570974" 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-03T23:15:14.570158" 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-03T23:15:14.571780" elapsed="0.000507"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:14.571281" elapsed="0.001088"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:14.571208" elapsed="0.001213"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:14.586583" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:14.586873" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:14.587110" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:14.577973" elapsed="0.009193"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:14.587896" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:14.587357" elapsed="0.000653"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:14.589283" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:14.588483" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:14.588092" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:14.587315" elapsed="0.002188"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:14.589807" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:14.591829" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:14.590817" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:14.590527" elapsed="0.001737">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:14.590287" elapsed="0.002112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:14.577127" elapsed="0.015481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:14.569173" elapsed="0.023631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:16.596751" 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-03T23:15:16.595165" elapsed="0.001663"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:16.597621" elapsed="0.000382"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:16.597061" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:16.596981" elapsed="0.001191"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:16.612210" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:16.612571" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:16.612792" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:16.603766" elapsed="0.009080"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:16.613613" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:16.613004" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:16.614953" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:16.614176" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:16.613779" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:16.612965" 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-03T23:15:16.615553" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:16.617620" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:16.616588" elapsed="0.001331">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:16.616283" elapsed="0.001825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:16.615990" elapsed="0.002283">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:16.602889" elapsed="0.015632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:16.594012" elapsed="0.024740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:18.621962" 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-03T23:15:18.620879" elapsed="0.001243"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:18.623125" elapsed="0.000590"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:18.622390" elapsed="0.001431"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:18.622320" elapsed="0.001578"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:18.639704" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:18.640075" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:18.640308" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:18.630262" elapsed="0.010104"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:18.641148" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:18.640526" elapsed="0.000768"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:18.642584" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:18.641747" elapsed="0.000965"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:18.641346" elapsed="0.001441"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:18.640485" 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-03T23:15:18.643329" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:18.645580" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:18.644448" elapsed="0.001305">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:18.644115" elapsed="0.001813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:18.643819" elapsed="0.002275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:18.629367" elapsed="0.016979">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:18.619715" elapsed="0.026830">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:20.649643" 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-03T23:15:20.648978" elapsed="0.000725"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:20.650259" elapsed="0.000273"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:20.649863" elapsed="0.000732"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:20.649823" elapsed="0.000814"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:20.661585" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:20.661822" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:20.661963" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:20.654153" elapsed="0.007844"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:20.662506" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:20.662129" elapsed="0.000449"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:20.663483" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:20.662953" elapsed="0.000596"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:20.662717" elapsed="0.000877"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:20.662103" elapsed="0.001520"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:20.663814" elapsed="0.000208"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:20.665132" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:20.664480" elapsed="0.000778">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:20.664292" elapsed="0.001066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:20.664120" elapsed="0.001319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:20.653615" elapsed="0.011956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:20.648252" elapsed="0.017441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:22.668573" 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-03T23:15:22.667705" elapsed="0.000944"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:22.669403" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:22.668833" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:22.668785" elapsed="0.001120"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:22.684534" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:22.684852" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:22.685236" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:22.675467" 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-03T23:15:22.686018" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:22.685457" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:22.687422" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:22.686608" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:22.686237" elapsed="0.001361"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:22.685416" 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-03T23:15:22.687951" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:22.690545" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:22.688987" elapsed="0.001722">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:22.688691" elapsed="0.002172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:22.688449" elapsed="0.002542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:22.674598" elapsed="0.016651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:22.666714" elapsed="0.024733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:24.694607" 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-03T23:15:24.693705" elapsed="0.000978"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:24.695474" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:24.694880" elapsed="0.001077"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:24.694830" elapsed="0.001229"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:24.710636" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:24.711135" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:24.711365" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:24.701736" elapsed="0.009686"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:24.712233" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:24.711582" elapsed="0.000777"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:24.713691" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:24.712806" elapsed="0.001033"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:24.712413" elapsed="0.001523"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:24.711543" elapsed="0.002463"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:24.714394" elapsed="0.000326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:24.716485" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:24.715440" elapsed="0.001207">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:24.715115" elapsed="0.001679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:24.714838" elapsed="0.002085">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:24.700858" elapsed="0.016304">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:24.692557" elapsed="0.024824">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:26.720527" 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-03T23:15:26.719616" elapsed="0.000988"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:26.721395" elapsed="0.000537"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:26.720798" elapsed="0.001215"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:26.720749" elapsed="0.001351"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:26.737404" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:26.737742" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:26.737963" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:26.728223" elapsed="0.009795"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:26.738790" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:26.738233" elapsed="0.000672"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:26.740179" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:26.739383" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:26.738956" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:26.738172" 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-03T23:15:26.740737" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:26.742801" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:26.741766" elapsed="0.001199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:26.741471" elapsed="0.001678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:26.741226" elapsed="0.002070">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:26.727338" elapsed="0.016166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:26.718523" elapsed="0.025175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:28.746677" 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-03T23:15:28.745800" elapsed="0.000952"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:28.747524" elapsed="0.000375"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:28.746938" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:28.746890" elapsed="0.001174"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:28.762336" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:28.762660" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:28.762885" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:28.753636" elapsed="0.009312"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:28.763741" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:28.763151" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:28.765178" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:28.764391" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:28.763932" elapsed="0.001444"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:28.763110" 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-03T23:15:28.765727" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:28.767787" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:28.766755" elapsed="0.001193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:28.766460" elapsed="0.001670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:28.766215" elapsed="0.002069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:28.752760" elapsed="0.015732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:28.744773" elapsed="0.024037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:30.772097" 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-03T23:15:30.770667" elapsed="0.001503"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:30.772878" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:30.772370" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:30.772325" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:30.787492" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:30.787797" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:30.788014" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:30.778946" elapsed="0.009155"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:30.788829" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:30.788284" elapsed="0.000659"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:30.790225" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:30.789422" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:30.788993" elapsed="0.001412"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:30.788242" 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-03T23:15:30.790756" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:30.792810" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:30.791768" elapsed="0.001198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:30.791476" elapsed="0.001681">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:30.791238" elapsed="0.002069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:30.778108" elapsed="0.015519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:30.769733" elapsed="0.024090">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:32.797136" 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-03T23:15:32.796210" elapsed="0.001030"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:32.797976" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:32.797438" elapsed="0.001039"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:32.797387" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:32.813000" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:32.813397" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:32.813598" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:32.804171" elapsed="0.009482"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:32.814409" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:32.813809" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:32.815773" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:32.814959" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:32.814574" elapsed="0.001377"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:32.813770" 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-03T23:15:32.816357" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:32.818394" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:32.817372" elapsed="0.001180">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:32.817059" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:32.816791" elapsed="0.002164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:32.803288" elapsed="0.015934">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:32.795075" elapsed="0.024347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:34.825237" 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-03T23:15:34.824393" 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-03T23:15:34.825990" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:34.825482" elapsed="0.001009"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:34.825436" elapsed="0.001107"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:34.841463" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:34.841767" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:34.841984" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:34.832061" elapsed="0.010012"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:34.842808" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:34.842257" elapsed="0.000664"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:34.844198" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:34.843387" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:34.842971" elapsed="0.001404"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:34.842214" 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-03T23:15:34.844721" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:34.846744" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:34.845727" elapsed="0.001173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:34.845435" elapsed="0.001780">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:34.845195" elapsed="0.002155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:34.831171" elapsed="0.016388">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:34.823485" elapsed="0.024270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:36.850778" 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-03T23:15:36.849889" elapsed="0.000971"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:36.851646" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:36.851085" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:36.851005" elapsed="0.001206"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:36.867285" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:36.867619" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:36.867822" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:36.857853" elapsed="0.010025"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:36.868659" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:36.868070" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:36.870012" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:36.869248" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:36.868828" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:36.867997" 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-03T23:15:36.870598" elapsed="0.000323"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:36.873192" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:36.871628" elapsed="0.001842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:36.871332" elapsed="0.002293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:36.871069" elapsed="0.002684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:36.856959" elapsed="0.017004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:36.848823" elapsed="0.025391">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:38.877318" 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-03T23:15:38.876397" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:38.878200" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:38.877614" elapsed="0.001053"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:38.877561" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:38.894270" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:38.894603" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:38.894806" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:38.884562" elapsed="0.010302"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:38.895643" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:38.895054" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:38.897003" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:38.896234" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:38.895812" elapsed="0.001429"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:38.894983" 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-03T23:15:38.897715" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:38.899796" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:38.898756" elapsed="0.001202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:38.898459" elapsed="0.001685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:38.898213" elapsed="0.002084">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:38.883572" elapsed="0.016938">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:38.875354" elapsed="0.025356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:40.903959" 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-03T23:15:40.903069" elapsed="0.000999"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:40.904837" elapsed="0.000436"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:40.904294" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:40.904240" elapsed="0.001171"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:40.920984" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:40.921422" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:40.921652" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:40.911633" elapsed="0.010074"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:40.922486" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:40.921869" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:40.923977" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:40.923202" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:40.922781" elapsed="0.001435"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:40.921829" elapsed="0.002435"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:40.924578" elapsed="0.000324"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:40.926651" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:40.925616" elapsed="0.001199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:40.925317" elapsed="0.001653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:40.925021" elapsed="0.002110">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:40.910754" elapsed="0.016612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:40.901939" elapsed="0.025627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:42.930777" 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-03T23:15:42.929864" elapsed="0.000991"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:42.931641" elapsed="0.000378"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:42.931085" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:42.931002" elapsed="0.001206"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:42.947751" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:42.948122" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:42.948484" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:42.937892" elapsed="0.010649"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:42.949323" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:42.948705" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:42.950675" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:42.949865" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:42.949490" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:42.948665" 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-03T23:15:42.951253" elapsed="0.000322"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:42.953311" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:42.952280" elapsed="0.001192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:42.951941" elapsed="0.001682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:42.951696" elapsed="0.002053">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:42.936968" elapsed="0.016986">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:42.928733" elapsed="0.025465">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:44.958129" 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-03T23:15:44.956511" elapsed="0.001711"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:44.958958" elapsed="0.000439"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:44.958426" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:44.958375" elapsed="0.001155"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:44.973999" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:44.974564" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:44.974819" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:44.965135" elapsed="0.009740"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:44.975736" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:44.975089" elapsed="0.000766"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:44.977210" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:44.976338" elapsed="0.000980"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:44.975908" elapsed="0.001482"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:44.975010" elapsed="0.002425"/>
</if>
<kw name="Status Should Be" owner="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-03T23:15:44.977742" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:44.979850" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:44.978799" elapsed="0.001211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:44.978496" elapsed="0.001723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:44.978247" elapsed="0.002101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:44.964252" elapsed="0.016310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:44.955416" elapsed="0.025344">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:46.983870" 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-03T23:15:46.982957" elapsed="0.000986"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:46.984731" elapsed="0.000585"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:46.984192" elapsed="0.001208"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:46.984124" elapsed="0.001329"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:47.001221" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:47.001582" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:47.001788" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:46.991125" elapsed="0.010719"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:47.002653" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:47.002008" elapsed="0.000763"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:47.004017" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:47.003250" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:47.002822" elapsed="0.001429"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:47.001967" 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-03T23:15:47.004606" elapsed="0.000319"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:47.006867" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:47.005689" elapsed="0.001387">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:47.005392" elapsed="0.001884">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:47.005075" elapsed="0.002330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:46.990265" elapsed="0.017351">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:46.981853" elapsed="0.025956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:49.011939" 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-03T23:15:49.010974" elapsed="0.001041"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:49.012836" elapsed="0.000442"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:49.012289" elapsed="0.001073"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:49.012237" elapsed="0.001177"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:49.028401" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:49.028751" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:49.028976" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:49.019314" elapsed="0.009750"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:49.029836" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:49.029255" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:49.031263" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:49.030431" elapsed="0.000938"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:49.030006" elapsed="0.001436"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:49.029214" 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-03T23:15:49.031790" elapsed="0.000418"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:49.033958" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:49.032883" elapsed="0.001322">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:49.032583" elapsed="0.001777">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:49.032330" elapsed="0.002160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:49.018428" elapsed="0.016271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:49.009883" elapsed="0.025183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:51.038346" 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-03T23:15:51.037418" elapsed="0.001008"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:51.039222" elapsed="0.000387"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:51.038629" elapsed="0.001063"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:51.038577" elapsed="0.001170"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:51.054547" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:51.054877" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:51.055111" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:51.045402" elapsed="0.009790"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:51.055904" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:51.055352" elapsed="0.000667"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:51.057301" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:51.056491" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:51.056102" elapsed="0.001373"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:51.055313" 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-03T23:15:51.057822" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:51.060454" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:51.058853" elapsed="0.001761">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:51.058558" elapsed="0.002210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:51.058313" elapsed="0.002580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:51.044521" elapsed="0.016742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:51.036322" elapsed="0.025146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:53.064665" 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-03T23:15:53.063717" elapsed="0.001023"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:53.065540" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:53.064944" elapsed="0.001063"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:53.064889" elapsed="0.001205"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:53.080963" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:53.081363" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:53.081570" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:53.071756" elapsed="0.009869"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:53.082413" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:53.081788" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:53.083768" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:53.082956" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:53.082581" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:53.081746" 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-03T23:15:53.084351" elapsed="0.000326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:53.086428" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:53.085390" elapsed="0.001198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:53.085072" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:53.084794" elapsed="0.002188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:53.070878" elapsed="0.016371">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:53.062644" elapsed="0.024804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:55.090373" 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-03T23:15:55.089493" elapsed="0.000955"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:15:55.091213" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:55.090642" elapsed="0.001032"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:55.090590" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:55.106503" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:55.106824" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:55.107081" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:55.097831" elapsed="0.009327"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:55.107891" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:55.107326" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:55.109297" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:55.108490" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:55.108091" elapsed="0.001382"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:55.107282" 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-03T23:15:55.109826" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:55.111892" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:55.110854" elapsed="0.001232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:55.110558" elapsed="0.001819">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:55.110316" elapsed="0.002195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:55.096952" elapsed="0.015770">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:55.088470" elapsed="0.024448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:57.115470" 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-03T23:15:57.114644" 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-03T23:15:57.116247" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:57.115702" elapsed="0.000985"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:57.115659" elapsed="0.001080"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:57.130637" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:57.130923" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:57.131179" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:57.122246" elapsed="0.008990"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:57.131943" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:57.131396" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:57.133336" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:57.132527" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:57.132161" elapsed="0.001351"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:57.131355" 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-03T23:15:57.133863" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:57.135883" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:57.134872" elapsed="0.001371">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:57.134581" elapsed="0.001818">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:57.134344" elapsed="0.002183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:57.121387" elapsed="0.015348">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:57.113745" elapsed="0.023191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:59.140647" 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-03T23:15:59.139057" elapsed="0.001666"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:15:59.141525" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:59.140918" elapsed="0.001090"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:59.140868" elapsed="0.001249"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:15:59.157754" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:15:59.158148" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:15:59.158388" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:15:59.148315" elapsed="0.010134"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:15:59.159275" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:15:59.158624" elapsed="0.000803"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:15:59.160758" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:15:59.159875" elapsed="0.000994"/>
</kw>
<status status="PASS" start="2026-10-03T23:15:59.159484" elapsed="0.001460"/>
</branch>
<status status="PASS" start="2026-10-03T23:15:59.158579" 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-03T23:15:59.161499" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:15:59.163688" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:59.162592" elapsed="0.001261">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:59.162277" elapsed="0.001736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:15:59.161964" elapsed="0.002238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:59.147368" elapsed="0.017058">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:15:59.137974" elapsed="0.026664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:01.167842" 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-03T23:16:01.166931" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:01.168711" elapsed="0.000425"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:01.168174" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:01.168121" elapsed="0.001151"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:01.183989" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:01.184393" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:01.184593" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:01.174867" elapsed="0.009781"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:01.185412" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:01.184804" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:01.186952" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:01.186177" elapsed="0.000951"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:01.185714" elapsed="0.001487"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:01.184765" elapsed="0.002483"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:01.187558" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:01.189623" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:01.188587" elapsed="0.001197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:01.188295" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:16:01.187997" elapsed="0.002119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:01.173946" elapsed="0.016384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:01.165846" elapsed="0.024679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:03.194965" 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-03T23:16:03.193966" elapsed="0.001151"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:03.195875" elapsed="0.000452"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:03.195345" elapsed="0.001062"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:03.195287" elapsed="0.001183"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:03.212197" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:03.212561" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:03.212936" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:03.202465" elapsed="0.010528"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:03.213768" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:03.213213" elapsed="0.000673"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:03.215247" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:03.214422" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:03.213935" elapsed="0.001482"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:03.213170" elapsed="0.002292"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:03.215769" elapsed="0.000375"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:03.217871" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:03.216816" elapsed="0.001254">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:03.216520" elapsed="0.001737">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:16:03.216266" elapsed="0.002121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:03.201593" elapsed="0.017010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:03.192632" elapsed="0.026165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:05.221809" 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-03T23:16:05.220907" 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-03T23:16:05.222650" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:05.222129" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:05.222057" elapsed="0.001189"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:05.238393" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:05.238825" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:05.239060" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:05.229072" elapsed="0.010070"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:05.239856" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:05.239304" elapsed="0.000669"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:05.241248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:05.240445" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:05.240053" elapsed="0.001369"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:05.239263" elapsed="0.002204"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:05.241797" elapsed="0.000390"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:05.244915" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:05.242964" elapsed="0.002167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:05.242613" elapsed="0.002680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:16:05.242310" elapsed="0.003109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:05.228222" elapsed="0.017420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:05.219848" elapsed="0.025989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:07.248674" 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-03T23:16:07.247811" 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-03T23:16:07.249495" elapsed="0.000476"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:07.248924" elapsed="0.001173"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:07.248876" elapsed="0.001279"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:07.265241" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:07.265541" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:07.265753" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:07.255860" elapsed="0.009949"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:07.266586" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:07.265986" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:07.267976" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:07.267170" elapsed="0.000966"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:07.266751" elapsed="0.001455"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:07.265944" elapsed="0.002307"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:07.268557" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:07.270596" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:07.269581" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:07.269283" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:16:07.268988" elapsed="0.002027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:07.254954" elapsed="0.016322">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:07.246817" elapsed="0.024650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:09.274425" 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-03T23:16:09.273588" 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-03T23:16:09.275252" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:09.274671" elapsed="0.001027"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:09.274625" elapsed="0.001126"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:09.290915" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:09.291272" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:09.291494" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:09.281935" elapsed="0.009614"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:09.292306" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:09.291707" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:09.293642" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:09.292834" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:09.292472" elapsed="0.001338"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:09.291666" elapsed="0.002188"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:09.294208" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:09.296311" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:09.295261" elapsed="0.001204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:09.294864" elapsed="0.001756">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-03T23:16:09.294631" elapsed="0.002115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:09.281087" elapsed="0.015859">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:09.272615" elapsed="0.024678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-10-03T23:16:09.297482" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:14:38.128764" elapsed="91.168930">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:09.298207" elapsed="0.000054"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:09.300196" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:16:09.629276" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:16:09.629621" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:16:09.629712" 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-03T23:16:09.629794" 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-03T23:16:09.299790" elapsed="0.330055"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:09.631168" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:09.630462" elapsed="0.000802"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:09.632053" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:16:09.992662" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:16:09.993006" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:16:09.993177" 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-03T23:16:09.993262" 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-03T23:16:09.631678" elapsed="0.361633"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:09.994292" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:16:10.073243" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:16:10.073475" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:16:10.073565" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:16:10.073645" 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-03T23:16:09.993811" elapsed="0.079879"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.074366" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:16:10.126745" 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-03T23:16:10.074161" elapsed="0.052705"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:10.141798" level="INFO">DELETE Request : url=http://10.30.170.37: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=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:10.141913" level="INFO">DELETE Response : url=http://10.30.170.37: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-03T23:16:10.142176" 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-03T23:16:10.127233" elapsed="0.015001"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:10.149734" level="INFO">DELETE Request : url=http://10.30.170.37: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=node01az3n8xcohhjq1k7uchtiluqmn3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:10.150019" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:16:10.150435" 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-03T23:16:10.142581" elapsed="0.007914"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:16:09.298889" elapsed="0.851769"/>
</kw>
<doc>CallHome SSH device registered with wrong global credentials should fail to mount.</doc>
<status status="FAIL" start="2026-10-03T23:14:37.324700" elapsed="92.826070">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC2lIVmffPKvxN9jFhSaL4L+Dfah0CUXcsLly0gduBjoXbLHsQoJ/D5bLjKjzspDUHlJUxvXY3ujDNUKBSsWYqhRTQt8wl0BqBeyE3Zeq4zqV3DUUuBBjO/kGI9pCHjvqrS4dgkYeh1+OzVfwqOGPtQ6lr5HX0vB6xkAqf2C+UhEMBlWZTZ1TCVns9IwRZ37LkbI/0FMn1NSTf0uaBjYU67+UVSCVzaY50DteVuYxdbmh55302nseIpVr2C1D2rzu0ryRhaCoPOzsKTPKKN1HaCp5/HSJq3eaIesjhNdkSnp3vIZY7GfD1iSsXKXPw4LGe4P6I9/ox76e+Te/mQHneT"}}]}}}' 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-03T23:16:10.154256" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c99f5f090&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-03T23:16:10.153772" elapsed="0.000780"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.155230" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:16:10.178910" 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-03T23:16:10.154966" elapsed="0.024096"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.179663" 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-03T23:16:10.514701" 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-03T23:16:10.179465" elapsed="0.335445"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.515760" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:16:10.567496" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:16:10.567755" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCw09mChvkJCGRMgVYFTMOayLA+jiuyS224UXMTVaGiGJiFg6k3t1KhIGYT9FSX5Ni0tvO2QFjkyXunEmbibiyV0Z0B4CLE9iGZ3H5lOKBA13lwz3zAtflO5WcjSJIFZhX5hh7y4PdbUuc5wOInwPPQjb47KguP+KEZy9r3gTrJ...</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-03T23:16:10.515486" elapsed="0.052327"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:16:10.572149" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCw09mChvkJCGRMgVYFTMOayLA+jiuyS224UXMTVaGiGJiFg6k3t1KhIGYT9FSX5Ni0tvO2QFjkyXunEmbibiyV0Z0B4CLE9iGZ3H5lOKBA13lwz3zAtflO5WcjSJIFZhX5hh7y4PdbUuc5wOInwPPQjb47KguP+KEZy9r3gTrJ...</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-03T23:16:10.568342" elapsed="0.003910"/>
</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-03T23:16:10.153157" elapsed="0.419227"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.617263" 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-03T23:16:10.573433" elapsed="0.043976"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.628249" 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-03T23:16:10.617777" elapsed="0.010599"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-03T23:16:10.572743" elapsed="0.055762"/>
</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-03T23:16:10.630455" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:10.629776" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:16:10.631812" 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-03T23:16:10.632143" 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-03T23:16:10.631536" elapsed="0.000663"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:16:10.633238" 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-03T23:16:10.632542" elapsed="0.000875"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:10.630892" elapsed="0.002639"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:10.630616" elapsed="0.002962"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:10.629723" elapsed="0.003898"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.634418" 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-03T23:16:10.633934" elapsed="0.000542"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.635259" 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-03T23:16:10.634804" elapsed="0.000510"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.636088" 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-03T23:16:10.635640" elapsed="0.000505"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.636866" 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-03T23:16:10.636471" elapsed="0.000448"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:10.661182" level="INFO">POST Request : url=http://10.30.170.37: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:16:10.661303" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node013amkrqq860hxirg64y4o874b4.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:16:10 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.37: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-03T23:16:10.661504" 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-03T23:16:10.637265" elapsed="0.024292"/>
</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-03T23:16:10.661920" elapsed="0.000841"/>
</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-03T23:16:10.629006" elapsed="0.033879"/>
</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-03T23:16:10.665709" 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-03T23:16:10.665975" 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-03T23:16:10.665456" elapsed="0.000601"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:16:10.667099" 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-03T23:16:10.666421" elapsed="0.000767"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:10.664804" elapsed="0.002492"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:10.664242" elapsed="0.003101"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-03T23:16:10.667685" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:10.667393" elapsed="0.000387"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:10.664202" elapsed="0.003620"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.668641" 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-03T23:16:10.668206" elapsed="0.000489"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.669568" 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-03T23:16:10.669017" elapsed="0.000669"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.670468" 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-03T23:16:10.670018" elapsed="0.000504"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:10.671319" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCw09mChvkJCGRMgVYFTMOayLA+jiuyS224UXMTVaGiGJiFg6k3t1KhIGYT9FSX...</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-03T23:16:10.670843" elapsed="0.000531"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:10.684441" level="INFO">POST Request : url=http://10.30.170.37: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=node013amkrqq860hxirg64y4o874b4.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCw09mChvkJCGRMgVYFTMOayLA+jiuyS224UXMTVaGiGJiFg6k3t1KhIGYT9FSX5Ni0tvO2QFjkyXunEmbibiyV0Z0B4CLE9iGZ3H5lOKBA13lwz3zAtflO5WcjSJIFZhX5hh7y4PdbUuc5wOInwPPQjb47KguP+KEZy9r3gTrJZtgWrSM5xs6anqvrvIfNkl2DqbQTY3Dk45KOcr+oqEVLrwEP5/GQjNzBEtYz+vlr3UtWaNz/WlTf573kyo3uOW12flXvl10ujXiBwDvLk6r2QoGc1Cy/wQQDUy6GiPkIS+CizPprKw0Oy+AOPRuOLFB4S88b7+gXNvEtli+pjBjN"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:16:10.684549" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:10.684721" 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-03T23:16:10.671668" elapsed="0.013105"/>
</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-03T23:16:10.685176" elapsed="0.000738"/>
</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-03T23:16:10.663424" elapsed="0.022671"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:10.686813" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-03T23:16:11.003887" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:16:11.004336" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:16:11.004429" 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-03T23:16:11.004511" 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-03T23:16:10.686470" elapsed="0.318089"/>
</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-03T23:16:11.010762" 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-03T23:16:11.009997" elapsed="0.000823"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From 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-03T23:16:11.011522" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:11.010977" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:11.010933" elapsed="0.000761"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:11.026319" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node013amkrqq860hxirg64y4o874b4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:11.026630" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCw09mChvkJCGRMgVYFTMOayLA+jiuyS224UXMTVaGiGJiFg6k3t1KhIGYT9FSX5Ni0tvO2QFjkyXunEmbibiyV0Z0B4CLE9iGZ3H5lOKBA13lwz3zAtflO5WcjSJIFZhX5hh7y4PdbUuc5wOInwPPQjb47KguP+KEZy9r3gTrJZtgWrSM5xs6anqvrvIfNkl2DqbQTY3Dk45KOcr+oqEVLrwEP5/GQjNzBEtYz+vlr3UtWaNz/WlTf573kyo3uOW12flXvl10ujXiBwDvLk6r2QoGc1Cy/wQQDUy6GiPkIS+CizPprKw0Oy+AOPRuOLFB4S88b7+gXNvEtli+pjBjN"}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:11.026858" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:11.017410" elapsed="0.009502"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:11.027774" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:11.027121" elapsed="0.000770"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:11.029185" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCw09mChvkJCGRMgVYFTMOayLA+jiuyS224UXMTVaGiGJiFg6k3t1KhIGYT9FSX5Ni0tvO2QFjkyXunEmbibiyV0Z0B4CLE9iGZ3H5lOKBA13lwz3zAtflO5WcjSJIFZhX5hh7y4PdbUuc5wOInwPPQjb47KguP+KEZy9r3gTrJZtgWrSM5xs6anqvrvIfNkl2DqbQTY3Dk45KOcr+oqEVLrwEP5/GQjNzBEtYz+vlr3UtWaNz/WlTf573kyo3uOW12flXvl10ujXiBwDvLk6r2QoGc1Cy/wQQDUy6GiPkIS+CizPprKw0Oy+AOPRuOLFB4S88b7+gXNvEtli+pjBjN"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:11.028356" elapsed="0.000944"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:11.027941" elapsed="0.001428"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:11.027060" elapsed="0.002355"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:11.029717" elapsed="0.000340"/>
</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-03T23:16:11.030829" elapsed="0.001076"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-03T23:16:11.030431" elapsed="0.001557"/>
</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-03T23:16:11.032499" elapsed="0.000924"/>
</kw>
<var name="${i}">"device-status":"DISCONNECTED"</var>
<status status="PASS" start="2026-10-03T23:16:11.032214" elapsed="0.001289"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="PASS" start="2026-10-03T23:16:11.030191" elapsed="0.003374"/>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET 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-03T23:16:11.016530" elapsed="0.017147"/>
</kw>
<arg>DISCONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="PASS" start="2026-10-03T23:16:11.009261" elapsed="0.024522"/>
</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-03T23:16:11.005148" elapsed="0.028723"/>
</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-03T23:16:11.067147" level="INFO">GET Request : url=http://10.30.170.37: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=node013amkrqq860hxirg64y4o874b4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:11.067433" level="INFO">GET Response : url=http://10.30.170.37: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-03T23:16:11.067637" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:11.041585" elapsed="0.026106"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:11.068502" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:11.067848" elapsed="0.000773"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:11.069858" 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-03T23:16:11.069057" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:11.068672" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:11.067807" elapsed="0.002333"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:11.070451" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:11.072446" 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-03T23:16:11.071429" elapsed="0.001245">'{"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-03T23:16:11.071142" elapsed="0.001687">'{"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-03T23:16:11.070863" elapsed="0.002094">'{"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-03T23:16:11.040691" elapsed="0.032532">'{"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-03T23:16:11.035495" elapsed="0.038087"/>
</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-03T23:16:11.034298" elapsed="0.039399"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:11.075449" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:16:11.392719" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:16:11.393170" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:16:11.393263" 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-03T23:16:11.393345" 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-03T23:16:11.075096" elapsed="0.318299"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:11.394676" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:16:11.393963" elapsed="0.000799"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:11.395608" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:16:11.736261" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:16:11.736584" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:16:11.736671" 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-03T23:16:11.736753" 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-03T23:16:11.395252" elapsed="0.341550"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:11.737962" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:16:11.807143" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:16:11.807405" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:16:11.807495" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:16:11.807575" 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-03T23:16:11.737546" elapsed="0.070169"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:11.808443" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:16:11.855311" 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-03T23:16:11.808218" elapsed="0.047219"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:11.868860" level="INFO">DELETE Request : url=http://10.30.170.37: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=node013amkrqq860hxirg64y4o874b4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:11.868957" level="INFO">DELETE Response : url=http://10.30.170.37: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-03T23:16:11.869239" 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-03T23:16:11.855744" elapsed="0.013550"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:11.877550" level="INFO">DELETE Request : url=http://10.30.170.37: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=node013amkrqq860hxirg64y4o874b4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:11.877828" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:16:11.878061" 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-03T23:16:11.869605" elapsed="0.008536"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:16:11.074288" elapsed="0.804003"/>
</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-03T23:16:10.151794" elapsed="1.726590"/>
</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-03T23:16:11.882467" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c99f3ed50&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-03T23:16:11.881977" elapsed="0.000778"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:11.883613" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:16:11.902679" 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-03T23:16:11.883394" elapsed="0.019403"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:11.903433" 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-03T23:16:12.076152" 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-03T23:16:11.903236" elapsed="0.173102"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:12.077432" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:16:12.127116" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:16:12.127355" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCbRfXrVh+h/cvaiLVkYZB3l/74/8h5oSO3kNIum1q7EMk3Aw43rAe+N+fRKXQNT4ZsJNFDOb5IKaB+C0Ux/dufMhyMo6LQ1vwlIQnPnfDESRoHpVhm24pSndr+nA1JRm6uCQPLtvARieualuJQ1o3Q96JEyZ54RIz3JpeA2FLD...</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-03T23:16:12.076822" elapsed="0.050597"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:16:12.131190" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCbRfXrVh+h/cvaiLVkYZB3l/74/8h5oSO3kNIum1q7EMk3Aw43rAe+N+fRKXQNT4ZsJNFDOb5IKaB+C0Ux/dufMhyMo6LQ1vwlIQnPnfDESRoHpVhm24pSndr+nA1JRm6uCQPLtvARieualuJQ1o3Q96JEyZ54RIz3JpeA2FLD...</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-03T23:16:12.127847" elapsed="0.003439"/>
</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-03T23:16:11.881322" elapsed="0.250094"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:16:12.176216" 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-03T23:16:12.132596" elapsed="0.043753"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:16:12.186923" 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-03T23:16:12.176738" elapsed="0.010454"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-03T23:16:12.131774" elapsed="0.055550"/>
</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-03T23:16:12.189216" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:12.188567" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:16:12.190565" 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-03T23:16:12.190840" 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-03T23:16:12.190303" elapsed="0.000592"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:16:12.191935" 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-03T23:16:12.191293" elapsed="0.000759"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:12.189668" elapsed="0.002522"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:12.189383" elapsed="0.002856"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:12.188520" elapsed="0.003763"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:12.193099" 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-03T23:16:12.192596" elapsed="0.000571"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:12.193957" 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-03T23:16:12.193535" elapsed="0.000477"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:12.194804" 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-03T23:16:12.194396" elapsed="0.000462"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:16:12.195633" 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-03T23:16:12.195237" elapsed="0.000449"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:12.214151" level="INFO">POST Request : url=http://10.30.170.37: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x"
        }
    }
}
 
 </msg>
<msg time="2026-10-03T23:16:12.214268" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:16:12 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:12.214451" 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-03T23:16:12.195980" elapsed="0.018523"/>
</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-03T23:16:12.214865" elapsed="0.001467"/>
</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-03T23:16:12.187817" elapsed="0.028654"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:16:12.217329" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-03T23:16:12.523929" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:16:12.524351" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:16:12.524493" 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-03T23:16:12.524714" 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-03T23:16:12.216894" elapsed="0.307874"/>
</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-03T23:16:12.528778" 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-03T23:16:12.528005" elapsed="0.000831"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:12.529539" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:12.528997" elapsed="0.000982"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:12.528952" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:12.545954" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:12.546345" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:12.546602" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:12.536898" elapsed="0.009760"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:12.547482" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:12.546821" elapsed="0.000780"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:12.548918" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.548021" elapsed="0.001001"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:12.547653" elapsed="0.001502"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:12.546780" elapsed="0.002420"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:12.549539" elapsed="0.000324"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:12.551695" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.550616" elapsed="0.001233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.550284" elapsed="0.001717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.549981" elapsed="0.002212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.535888" elapsed="0.016634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.527257" elapsed="0.025472">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.555685" 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-03T23:16:14.554737" elapsed="0.001020"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:14.556523" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:14.555931" elapsed="0.001088"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:14.555886" elapsed="0.001242"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:14.571515" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:14.571812" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:14.572013" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:14.562931" elapsed="0.009200"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:14.572872" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:14.572295" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:14.574312" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.573490" elapsed="0.000951"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:14.573092" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:14.572255" 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-03T23:16:14.574860" elapsed="0.000416"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:14.577596" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.576485" elapsed="0.001262">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.575660" elapsed="0.002236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.575409" elapsed="0.002749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.561989" elapsed="0.016384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:14.553766" elapsed="0.024802">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.581275" 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-03T23:16:16.580443" 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-03T23:16:16.582013" elapsed="0.000534"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:16.581517" elapsed="0.001120"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:16.581472" elapsed="0.001221"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:16.596903" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:16.597291" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:16.597499" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:16.588394" elapsed="0.009159"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:16.598345" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:16.597714" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:16.599701" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.598879" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:16.598515" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:16.597673" 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-03T23:16:16.600270" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:16.602307" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.601283" elapsed="0.001174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.600934" elapsed="0.001771">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.600697" elapsed="0.002138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.587503" elapsed="0.015584">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:16.579533" elapsed="0.023760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.605996" 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-03T23:16:18.605214" 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-03T23:16:18.606787" elapsed="0.000415"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:18.606292" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:18.606245" elapsed="0.001089"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:18.621715" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:18.621998" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:18.622321" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:18.613470" elapsed="0.008910"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:18.623154" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:18.622544" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:18.624531" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.623711" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:18.623324" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:18.622502" 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-03T23:16:18.625109" elapsed="0.000392"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:18.627234" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.626218" elapsed="0.001258">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.625874" elapsed="0.001755">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.625627" elapsed="0.002128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.612537" elapsed="0.015424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:18.604300" elapsed="0.023908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.631485" 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-03T23:16:20.630512" elapsed="0.001047"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:20.632311" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:20.631739" elapsed="0.001052"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:20.631692" elapsed="0.001152"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:20.647608" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:20.647909" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:20.648175" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:20.638684" elapsed="0.009550"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:20.648981" elapsed="0.000112"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:20.648416" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:20.650533" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.649682" elapsed="0.001053"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:20.649213" elapsed="0.001595"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:20.648360" elapsed="0.002493"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:20.651221" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:20.653275" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.652241" elapsed="0.001186">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.651898" elapsed="0.001677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.651657" elapsed="0.002042">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.637757" elapsed="0.016144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:20.629511" elapsed="0.024634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.657523" 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-03T23:16:22.655996" elapsed="0.001598"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:22.658321" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:22.657771" elapsed="0.001013"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:22.657725" elapsed="0.001112"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:22.672602" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:22.672897" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:22.673259" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:22.664460" elapsed="0.008857"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:22.674076" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:22.673478" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:22.675430" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.674615" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:22.674250" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:22.673438" 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-03T23:16:22.675956" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:22.678069" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.676967" elapsed="0.001257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.676678" elapsed="0.001695">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.676438" elapsed="0.002061">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.663505" elapsed="0.015200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:22.655126" elapsed="0.023776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.681641" 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-03T23:16:24.680805" 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-03T23:16:24.682443" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:24.681881" elapsed="0.001013"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:24.681836" elapsed="0.001124"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:24.697837" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:24.698214" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:24.698461" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:24.688443" elapsed="0.010078"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:24.699379" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:24.698700" elapsed="0.000815"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:24.700865" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.699943" elapsed="0.001031"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:24.699568" elapsed="0.001538"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:24.698655" elapsed="0.002507"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:24.701494" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:24.703636" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.702566" elapsed="0.001223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.702239" elapsed="0.001701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.701942" elapsed="0.002178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.687585" elapsed="0.016791">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:24.679833" elapsed="0.024760">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.707913" 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-03T23:16:26.707130" elapsed="0.000851"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:26.708707" elapsed="0.000450"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:26.708209" elapsed="0.001066"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:26.708163" elapsed="0.001172"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:26.723351" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:26.723646" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:26.723865" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:26.714784" elapsed="0.009136"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:26.724674" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:26.724127" elapsed="0.000661"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:26.725989" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.725237" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:26.724836" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:26.724085" elapsed="0.002176"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:26.726561" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:26.728554" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.727559" elapsed="0.001144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.727269" elapsed="0.001579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.726985" elapsed="0.001987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.713932" elapsed="0.015293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:26.706236" elapsed="0.023277">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.732246" 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-03T23:16:28.731407" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:16:28.732981" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:28.732491" elapsed="0.000980"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:28.732446" elapsed="0.001077"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:28.748376" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:28.748681" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:28.748882" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:28.739010" elapsed="0.009926"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:28.749738" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:28.749180" elapsed="0.000674"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:28.751160" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.750335" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:28.749904" elapsed="0.001434"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:28.749120" 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-03T23:16:28.751686" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:28.754186" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.752691" elapsed="0.001649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.752401" elapsed="0.002089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.752160" elapsed="0.002454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.738183" elapsed="0.016754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:28.730441" elapsed="0.024739">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.758108" 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-03T23:16:30.757239" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:16:30.758896" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:30.758365" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:30.758311" elapsed="0.001166"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:30.774640" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:30.774935" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:30.775197" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:30.765230" elapsed="0.010025"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:30.775969" elapsed="0.000102"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:30.775414" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:30.777418" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.776562" elapsed="0.000973"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:30.776194" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:30.775375" 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-03T23:16:30.777957" elapsed="0.000389"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:30.780190" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.779104" elapsed="0.001245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.778737" elapsed="0.001781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.778483" elapsed="0.002256">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.764336" elapsed="0.016617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:30.756232" elapsed="0.024976">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.784764" 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-03T23:16:32.783898" 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-03T23:16:32.785567" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:32.785058" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:32.784968" elapsed="0.001143"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:32.801118" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:32.801414" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:32.801635" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:32.792221" elapsed="0.009469"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:32.802454" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:32.801850" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:32.803785" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.802980" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:32.802621" elapsed="0.001342"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:32.801810" 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-03T23:16:32.804385" elapsed="0.000322"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:32.806466" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.805409" elapsed="0.001291">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.805106" elapsed="0.002031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.804821" elapsed="0.002457">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.791344" elapsed="0.016152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:32.782820" elapsed="0.024875">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.810436" 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-03T23:16:34.809607" 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-03T23:16:34.811224" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:34.810679" elapsed="0.000986"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:34.810636" elapsed="0.001081"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:34.825875" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:34.826236" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:34.826441" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:34.817405" elapsed="0.009090"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:34.827286" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:34.826654" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:34.828640" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.827823" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:34.827455" elapsed="0.001361"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:34.826614" 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-03T23:16:34.829231" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:34.831248" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.830237" elapsed="0.001264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.829891" elapsed="0.001759">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.829658" elapsed="0.002116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.816524" elapsed="0.015456">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:34.808651" elapsed="0.023577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.835522" 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-03T23:16:36.834171" elapsed="0.001419"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:36.836310" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:36.835764" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:36.835720" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:36.850858" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:36.851223" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:36.851445" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:36.842312" elapsed="0.009188"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:36.852263" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:36.851666" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:36.853609" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.852794" elapsed="0.001010"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:36.852428" elapsed="0.001447"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:36.851627" 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-03T23:16:36.854281" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:36.856320" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.855303" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.854947" elapsed="0.001672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.854710" elapsed="0.002036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.841441" elapsed="0.015511">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:36.833216" elapsed="0.023987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.860228" 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-03T23:16:38.859374" 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-03T23:16:38.860965" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:38.860470" elapsed="0.000986"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:38.860427" elapsed="0.001081"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:38.876605" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:38.876911" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:38.877278" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:38.867052" elapsed="0.010282"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:38.878093" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:38.877494" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:38.879436" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.878625" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:38.878260" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:38.877453" 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-03T23:16:38.879955" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:38.881966" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.880963" elapsed="0.001211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.880673" elapsed="0.001650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.880434" elapsed="0.002014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.866175" elapsed="0.016478">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:38.858430" elapsed="0.024414">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.886260" 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-03T23:16:40.885317" elapsed="0.001012"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:40.887022" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:40.886505" elapsed="0.000994"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:40.886458" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:40.902451" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:40.902733" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:40.902953" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:40.893291" elapsed="0.009773"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:40.903775" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:40.903228" elapsed="0.000663"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:40.905156" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.904358" elapsed="0.000905"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:40.903942" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:40.903187" elapsed="0.002191"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:40.905683" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:40.907703" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.906686" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.906395" elapsed="0.001627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.906161" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.892308" elapsed="0.016077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:40.884398" elapsed="0.024182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.911397" 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-03T23:16:42.910577" 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-03T23:16:42.912178" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:42.911638" elapsed="0.000980"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:42.911592" elapsed="0.001079"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:42.927329" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:42.927623" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:42.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-03T23:16:42.918224" elapsed="0.009651"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:42.928634" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:42.928088" elapsed="0.000661"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:42.930052" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.929225" elapsed="0.000942"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:42.928797" elapsed="0.001441"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:42.928020" elapsed="0.002264"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:42.930583" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:42.933101" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.931623" elapsed="0.001635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.931328" elapsed="0.002078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.931059" elapsed="0.002472">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.917359" elapsed="0.016376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:42.909645" elapsed="0.024426">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.936834" 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-03T23:16:44.936048" elapsed="0.000853"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:44.937623" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:44.937125" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:44.937077" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:44.952950" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:44.953302" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:44.953502" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:44.943686" elapsed="0.009870"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:44.954314" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:44.953715" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:44.955649" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.954845" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:44.954481" elapsed="0.001341"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:44.953676" elapsed="0.002190"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:44.956217" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:44.958227" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.957214" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.956875" elapsed="0.001650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.956642" elapsed="0.002004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.942812" elapsed="0.016137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:44.935102" elapsed="0.024099">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.961814" 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-03T23:16:46.961013" 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-03T23:16:46.962621" elapsed="0.000390"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:46.962115" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:46.962068" elapsed="0.001105"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:46.981845" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:46.982211" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:46.982437" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:46.972355" elapsed="0.010137"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:46.983287" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:46.982653" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:46.984638" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.983816" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:46.983455" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:46.982613" 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-03T23:16:46.985223" elapsed="0.000324"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:46.987252" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.986243" elapsed="0.001160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.985896" elapsed="0.001655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.985660" elapsed="0.002157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.971302" elapsed="0.016781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:46.960129" elapsed="0.028156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:48.991123" 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-03T23:16:48.990268" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:16:48.991868" elapsed="0.000415"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:48.991369" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:48.991324" elapsed="0.001091"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:49.006848" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:49.007215" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:49.007416" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:48.998079" elapsed="0.009391"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:49.008229" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:49.007627" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:49.009590" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:49.008762" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:49.008396" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:49.007586" 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-03T23:16:49.010194" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:49.012215" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:49.011203" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:49.010854" elapsed="0.001761">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:49.010620" elapsed="0.002125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:48.997164" elapsed="0.015790">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:48.989261" elapsed="0.023959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.016540" 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-03T23:16:51.015202" elapsed="0.001406"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:51.017341" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:51.016781" elapsed="0.001013"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:51.016736" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:51.032257" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:51.032549" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:51.032766" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:51.023496" elapsed="0.009325"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:51.033582" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:51.033004" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:51.034922" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.034164" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:51.033749" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:51.032939" 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-03T23:16:51.035506" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:51.037541" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.036525" elapsed="0.001261">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.036227" elapsed="0.001710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.035937" elapsed="0.002181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.022515" elapsed="0.015815">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:51.014236" elapsed="0.024292">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.041188" 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-03T23:16:53.040361" 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-03T23:16:53.041922" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:53.041426" elapsed="0.000993"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:53.041381" elapsed="0.001092"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:53.057497" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:53.057879" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:53.058197" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:53.048080" elapsed="0.010184"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:53.059159" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:53.058428" elapsed="0.000854"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:53.060692" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.059797" elapsed="0.001104"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:53.059332" elapsed="0.001661"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:53.058386" elapsed="0.002682"/>
</if>
<kw name="Status Should Be" owner="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-03T23:16:53.061378" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:53.063448" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.062405" elapsed="0.001192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.062110" elapsed="0.001638">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.061801" elapsed="0.002076">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.047197" elapsed="0.016974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:53.039449" elapsed="0.024928">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.067635" 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-03T23:16:55.066818" 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-03T23:16:55.068424" elapsed="0.000358"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:55.067873" elapsed="0.000988"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:55.067829" elapsed="0.001084"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:55.083638" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:55.083928" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:55.084304" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:55.074549" elapsed="0.009813"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:55.085134" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:55.084526" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:55.086490" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.085673" elapsed="0.000949"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:55.085303" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:55.084485" 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-03T23:16:55.087226" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:55.089267" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.088248" elapsed="0.001164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.087908" elapsed="0.001649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.087677" elapsed="0.002002">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.073627" elapsed="0.016258">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:55.065872" elapsed="0.024268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.092988" 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-03T23:16:57.092173" 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="PASS" start="2026-10-03T23:16:57.093775" elapsed="0.000446"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:57.093270" elapsed="0.001032"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:57.093224" elapsed="0.001130"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:57.109405" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:57.109744" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:57.109999" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:57.100057" elapsed="0.010087"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:57.110991" elapsed="0.000095"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:57.110395" elapsed="0.000769"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:57.112397" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.111584" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:57.111216" elapsed="0.001355"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:57.110345" 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-03T23:16:57.112920" elapsed="0.000383"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:57.115727" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.114158" elapsed="0.001729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.113663" elapsed="0.002431">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.113419" elapsed="0.002817">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.099186" elapsed="0.017299">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:57.091181" elapsed="0.025501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.119714" 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-03T23:16:59.118802" elapsed="0.000985"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:16:59.120576" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:59.120003" elapsed="0.001109"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:59.119930" elapsed="0.001238"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:16:59.135087" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:16:59.135373" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:16:59.135572" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:16:59.127325" elapsed="0.008302"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:16:59.136391" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:16:59.135785" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:16:59.137747" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.136927" elapsed="0.000940"/>
</kw>
<status status="PASS" start="2026-10-03T23:16:59.136557" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-03T23:16:59.135745" 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-03T23:16:59.138357" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:16:59.140367" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.139364" elapsed="0.001155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.139065" elapsed="0.001601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.138779" elapsed="0.002014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.126371" elapsed="0.014651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:59.117764" elapsed="0.023673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.144232" 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-03T23:17:01.143399" 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-03T23:17:01.144994" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:01.144473" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:01.144429" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:01.160669" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:01.160986" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:01.161255" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:01.151660" elapsed="0.009651"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:01.162067" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:01.161470" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:01.163405" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.162602" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:01.162238" elapsed="0.001342"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:01.161431" 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-03T23:17:01.163950" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:01.165982" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.164976" elapsed="0.001191">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.164638" elapsed="0.001678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.164404" elapsed="0.002034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.150756" elapsed="0.015973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:01.142425" elapsed="0.024526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.169812" 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-03T23:17:03.168977" 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-03T23:17:03.170654" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:03.170137" elapsed="0.001020"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:03.170085" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:03.186214" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:03.186625" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:03.186910" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:03.177136" elapsed="0.009884"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:03.187878" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:03.187281" elapsed="0.000785"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:03.189360" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.188504" elapsed="0.000968"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:03.188123" elapsed="0.001419"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:03.187232" elapsed="0.002355"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:03.189918" elapsed="0.000388"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:03.192182" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.191112" elapsed="0.001238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.190675" elapsed="0.001831">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.190425" elapsed="0.002312">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.176259" elapsed="0.016732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:03.167946" elapsed="0.025381">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.196785" 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-03T23:17:05.195285" elapsed="0.001573"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:17:05.197619" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:05.197100" elapsed="0.001069"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:05.197021" elapsed="0.001203"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:05.212483" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:05.212794" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:05.213071" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:05.203845" elapsed="0.009284"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:05.213848" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:05.213293" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:05.215265" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.214443" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:05.214068" elapsed="0.001374"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:05.213251" 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-03T23:17:05.215813" elapsed="0.000410"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:05.217958" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.216881" elapsed="0.001266">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.216585" elapsed="0.002078">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.216342" elapsed="0.002459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.202965" elapsed="0.016106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:05.194281" elapsed="0.024992">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.222013" 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-03T23:17:07.221189" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:17:07.222797" elapsed="0.000426"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:07.222296" elapsed="0.001007"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:07.222249" elapsed="0.001107"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:07.237420" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:07.237704" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:07.237902" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:07.228890" elapsed="0.009097"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:07.238719" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:07.238177" elapsed="0.000656"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:07.240111" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.239305" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:07.238883" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:07.238137" 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-03T23:17:07.240636" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:07.242677" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.241653" elapsed="0.001358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.241344" elapsed="0.001853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.241109" elapsed="0.002214">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.228069" elapsed="0.015461">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:07.220224" elapsed="0.023501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.247103" 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-03T23:17:09.246216" elapsed="0.000959"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:17:09.247844" elapsed="0.000426"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:09.247349" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:09.247305" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:09.263123" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:09.263419" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:09.263647" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:09.253999" elapsed="0.009704"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:09.264471" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:09.263861" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:09.265806" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.265019" elapsed="0.001034"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:09.264636" elapsed="0.001500"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:09.263821" 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-03T23:17:09.266520" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:09.268643" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.267558" elapsed="0.001243">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.267263" elapsed="0.001717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.266987" elapsed="0.002155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.253141" elapsed="0.016210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:09.245276" elapsed="0.024269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.272296" 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-03T23:17:11.271456" 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-03T23:17:11.273079" elapsed="0.000359"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:11.272540" elapsed="0.000977"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:11.272494" elapsed="0.001075"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:11.287524" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:11.287807" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:11.288154" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:11.279166" elapsed="0.009046"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:11.288952" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:11.288375" elapsed="0.000755"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:11.290396" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.289547" elapsed="0.000956"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:11.289182" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:11.288334" elapsed="0.002283"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:11.290954" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:11.293525" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.291962" elapsed="0.001716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.291648" elapsed="0.002182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.291414" elapsed="0.002566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.278293" elapsed="0.015926">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:11.270503" elapsed="0.023907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.297112" 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-03T23:17:13.296274" 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-03T23:17:13.297852" elapsed="0.000424"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:13.297354" elapsed="0.001002"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:13.297310" elapsed="0.001099"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:13.312849" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:13.313206" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:13.313409" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:13.303949" elapsed="0.009515"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:13.314231" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:13.313622" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:13.315565" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.314758" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:13.314398" elapsed="0.001341"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:13.313583" elapsed="0.002202"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:13.316152" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:13.318161" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.317153" elapsed="0.001161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.316809" elapsed="0.001654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.316575" elapsed="0.002012">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.303095" elapsed="0.015696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:13.295342" elapsed="0.023667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.321783" 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-03T23:17:15.320974" 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-03T23:17:15.322573" elapsed="0.000380"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:15.322074" elapsed="0.000987"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:15.321999" elapsed="0.001117"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:15.337603" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:15.337924" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:15.338195" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:15.329090" elapsed="0.009162"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:15.338978" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:15.338409" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:15.340356" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.339539" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:15.339176" elapsed="0.001353"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:15.338369" elapsed="0.002204"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:15.340874" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:15.342919" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.341877" elapsed="0.001230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.341592" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.341356" elapsed="0.002028">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.328209" elapsed="0.015378">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:15.320017" elapsed="0.023861">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.346628" 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-03T23:17:17.345800" 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-03T23:17:17.347414" elapsed="0.000436"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:17.346865" elapsed="0.001089"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:17.346822" elapsed="0.001185"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:17.361705" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:17.362021" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:17.362259" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:17.353577" elapsed="0.008737"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:17.363068" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:17.362473" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:17.364409" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.363600" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:17.363239" elapsed="0.001346"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:17.362433" elapsed="0.002197"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:17.364950" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:17.367100" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.365979" elapsed="0.001271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.365667" elapsed="0.001730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.365408" elapsed="0.002116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.352708" elapsed="0.015115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:17.344836" elapsed="0.023239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.371390" 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-03T23:17:19.369940" 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-03T23:17:19.372216" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:19.371657" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:19.371607" elapsed="0.001107"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:19.387179" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:19.387465" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:19.387683" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:19.378337" elapsed="0.009402"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:19.388513" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:19.387924" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:19.389920" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.389117" elapsed="0.000941"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:19.388705" elapsed="0.001448"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:19.387858" elapsed="0.002345"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:19.390509" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:19.392601" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.391507" elapsed="0.001241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.391218" elapsed="0.001701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.390952" elapsed="0.002209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.377427" elapsed="0.015947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:19.368977" elapsed="0.024592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.396426" 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-03T23:17:21.395582" 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-03T23:17:21.397230" elapsed="0.000424"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:21.396678" elapsed="0.001192"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:21.396632" elapsed="0.001344"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:21.412345" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:21.412691" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:21.412923" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:21.403766" elapsed="0.009218"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:21.413759" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:21.413182" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:21.415214" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.414359" elapsed="0.000963"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:21.413948" elapsed="0.001458"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:21.413139" 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-03T23:17:21.415767" elapsed="0.000377"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:21.417972" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.416825" elapsed="0.001334">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.416531" elapsed="0.001865">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.416259" elapsed="0.002267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.402859" elapsed="0.015873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:21.394605" elapsed="0.024345">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.422333" 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-03T23:17:23.421505" 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-03T23:17:23.423196" elapsed="0.000403"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:23.422571" elapsed="0.001109"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:23.422528" elapsed="0.001206"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:23.437707" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:23.438071" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:23.438301" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:23.429245" elapsed="0.009111"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:23.439114" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:23.438515" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:23.440554" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.439640" elapsed="0.001019"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:23.439283" elapsed="0.001446"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:23.438475" elapsed="0.002299"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:23.441128" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:23.443323" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.442239" elapsed="0.001324">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.441823" elapsed="0.001893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.441553" elapsed="0.002288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.428380" elapsed="0.015716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:23.420602" elapsed="0.023693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.446970" 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-03T23:17:25.446168" 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-03T23:17:25.447750" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:25.447247" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:25.447203" elapsed="0.001094"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:25.462010" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:25.462353" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:25.462551" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:25.453764" elapsed="0.008842"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:25.463362" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:25.462763" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:25.464699" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.463916" elapsed="0.001015"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:25.463525" elapsed="0.001479"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:25.462723" 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-03T23:17:25.465381" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:25.467831" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.466382" elapsed="0.001627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.466091" elapsed="0.002098">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.465806" elapsed="0.002513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.452930" elapsed="0.015597">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:25.445245" elapsed="0.023480">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.471615" 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-03T23:17:27.470652" elapsed="0.001032"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:17:27.472419" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:27.471881" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:27.471815" elapsed="0.001120"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:27.487072" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:27.487362" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:27.487682" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:27.478481" elapsed="0.009278"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:27.488556" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:27.487961" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:27.489919" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.489138" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:27.488723" elapsed="0.001403"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:27.487918" elapsed="0.002252"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:27.490473" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:27.492573" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.491490" elapsed="0.001234">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.491199" elapsed="0.001694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.490926" elapsed="0.002095">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.477603" elapsed="0.015671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:27.469687" elapsed="0.023784">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.496397" 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-03T23:17:29.495501" elapsed="0.000969"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:17:29.497236" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:29.496648" elapsed="0.001028"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:29.496602" elapsed="0.001125"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:29.515446" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:29.515731" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:29.515983" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:29.505892" elapsed="0.010179"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:29.516793" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:29.516237" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:29.518197" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.517383" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:29.516991" elapsed="0.001384"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:29.516195" 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-03T23:17:29.518725" elapsed="0.000380"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:29.520932" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.519808" elapsed="0.001308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.519453" elapsed="0.001813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.519216" elapsed="0.002173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.505044" elapsed="0.016548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:29.494499" elapsed="0.027284">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.524738" 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-03T23:17:31.523877" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-03T23:17:31.525577" elapsed="0.000438"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:31.525010" elapsed="0.001122"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:31.524963" elapsed="0.001225"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:31.540721" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:31.541104" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:31.541317" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:31.531958" elapsed="0.009421"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:31.542190" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:31.541560" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:31.543622" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.542755" elapsed="0.000975"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:31.542367" elapsed="0.001434"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:31.541518" 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-03T23:17:31.544223" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:31.546427" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.545296" elapsed="0.001293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.544965" elapsed="0.001776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.544691" elapsed="0.002205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.531021" elapsed="0.016123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:31.522836" elapsed="0.024630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.550763" 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-03T23:17:33.549372" elapsed="0.001462"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<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-03T23:17:33.551568" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:33.551066" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:33.550989" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:33.566524" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:33.566822" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:33.567112" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:33.557699" elapsed="0.009471"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:33.567960" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:33.567330" elapsed="0.000793"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:33.569377" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.568541" elapsed="0.000943"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:33.568173" elapsed="0.001382"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:33.567290" elapsed="0.002310"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:33.569958" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:33.572080" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.570985" elapsed="0.001257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.570666" elapsed="0.001728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.570425" elapsed="0.002092">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.556744" elapsed="0.016123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:33.548465" elapsed="0.024647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.576071" 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-03T23:17:35.575244" 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-03T23:17:35.576872" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:35.576319" elapsed="0.001042"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:35.576272" elapsed="0.001143"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:35.591457" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:35.591755" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:35.591990" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:35.582987" elapsed="0.009090"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:35.592833" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:35.592240" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:35.594243" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.593434" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:35.593061" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:35.592200" 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-03T23:17:35.594765" elapsed="0.000368"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:35.596807" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.595784" elapsed="0.001275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.595476" elapsed="0.001737">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.595241" elapsed="0.002189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.582139" elapsed="0.015502">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:35.574155" elapsed="0.023678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.601204" 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-03T23:17:37.600364" 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-03T23:17:37.601966" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:37.601444" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:37.601401" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:37.616479" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:37.616763" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:37.617017" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:37.607988" elapsed="0.009116"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:37.617813" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:37.617267" elapsed="0.000683"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:37.619213" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.618398" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:37.618001" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:37.617226" 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-03T23:17:37.619736" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:37.621753" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.620741" elapsed="0.001192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.620450" elapsed="0.001762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.620216" elapsed="0.002128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.607151" elapsed="0.015401">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:37.599440" elapsed="0.023306">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.625480" 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-03T23:17:39.624652" 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-03T23:17:39.626276" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:39.625722" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:39.625679" elapsed="0.001089"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:39.641124" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:39.641411" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:39.641615" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:39.632425" elapsed="0.009244"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:39.642468" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:39.641850" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:39.643874" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.643053" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:39.642634" elapsed="0.001448"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:39.641786" elapsed="0.002342"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:39.644463" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:39.647004" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.645486" elapsed="0.001795">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.645195" elapsed="0.002241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.644922" elapsed="0.002642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.631517" elapsed="0.016251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:39.623723" elapsed="0.024266">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.650728" 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-03T23:17:41.649902" 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-03T23:17:41.651531" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:41.651001" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:41.650953" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:41.666555" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:41.666893" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:41.667136" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:41.658083" elapsed="0.009110"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:41.667967" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:41.667361" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:41.669365" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.668536" elapsed="0.001030"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:41.668165" elapsed="0.001473"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:41.667319" elapsed="0.002365"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:41.670015" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:41.672095" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.671069" elapsed="0.001181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.670724" elapsed="0.001676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.670480" elapsed="0.002046">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.657176" elapsed="0.015555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:41.648922" elapsed="0.024031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.675684" 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-03T23:17:43.674867" 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-03T23:17:43.676484" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:43.675952" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:43.675906" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:43.691584" level="INFO">GET Request : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:43.691913" level="INFO">GET Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-03T23:17:43.692260" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-03T23:17:43.683070" elapsed="0.009248"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-03T23:17:43.693094" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-03T23:17:43.692482" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:43.694475" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.693655" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-03T23:17:43.693262" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-03T23:17:43.692440" elapsed="0.002256"/>
</if>
<kw name="Status Should Be" owner="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-03T23:17:43.695065" elapsed="0.000322"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:43.697107" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.696074" elapsed="0.001190">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.695730" elapsed="0.001683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.695497" elapsed="0.002040">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.682182" elapsed="0.015558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.673911" elapsed="0.024049">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<msg time="2026-10-03T23:17:43.698179" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:16:12.525351" elapsed="91.173043">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:43.698907" elapsed="0.000049"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:43.700753" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:17:44.019756" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:17:44.020212" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:17:44.020307" 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-03T23:17:44.020394" 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-03T23:17:43.700399" elapsed="0.320046"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:44.021752" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:17:44.021107" elapsed="0.000754"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.022640" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:17:44.363203" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:17:44.363543" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:17:44.363637" 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-03T23:17:44.363721" 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-03T23:17:44.022285" elapsed="0.341484"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.364736" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:17:44.446806" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:44.447117" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:17:44.447212" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:17:44.447294" 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-03T23:17:44.364338" elapsed="0.083002"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.447995" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:17:44.496563" 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-03T23:17:44.447761" elapsed="0.048946"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:44.510668" level="INFO">DELETE Request : url=http://10.30.170.37: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=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:44.510769" level="INFO">DELETE Response : url=http://10.30.170.37: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-03T23:17:44.510983" 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-03T23:17:44.497098" elapsed="0.013979"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:44.518693" level="INFO">DELETE Request : url=http://10.30.170.37: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=node01rmr8n0d4eegz1o93t9qwep5kl5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:44.519003" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:17:44.519253" 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-03T23:17:44.511399" elapsed="0.007910"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:17:43.699589" elapsed="0.819865"/>
</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-03T23:16:11.879304" elapsed="92.640245">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDEVM3Ve5nsVCFtq8SDoDJdKLm2GmucfjidhGLdsRvEnorbAa5m04H/q7wMbRCPQTWiCK8qfh7RrBdA0hnwed5VZFy85j6TKoxo48T6OE6ZdB2+QBa4wrHPjcBVn+WdxH0rUDPYWtQp843dKl1fSa+U3e3WGABxb7SA2Stl1sTFHUYDGQ5tXb3wGuDJ45hIR7xjkmYxrf/yGRn2XpjYlfX3NktW18uuLvK3YkiHJZGYxXvaDX05TCpi1nSenmxVkmHEnxYDhM8WBWoW6AJ9gdD5imn0fqEtljtdxyY/NcoyO8pB44vrTtIXQOUdZrxTTz/ApYsE/m7yGbZIBWSnsw0x","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-03T23:17:44.522797" level="INFO">Creating Session using : alias=session, url=http://10.30.170.37:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x736c99ec4f10&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-03T23:17:44.522338" elapsed="0.000821"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.523900" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-03T23:17:44.548427" 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-03T23:17:44.523671" elapsed="0.024876"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.549195" 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-03T23:17:44.732100" 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-03T23:17:44.548954" elapsed="0.183355"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.733203" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-03T23:17:44.784595" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:44.784871" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCXBEdyGMQ+RtLZnLYKUT3IHrJ7Y11CFox/2uhk5sUEXEnsPpHGrh35MYLFc+tFDwTzkOv43V15ROnFo3P3dCXWIyFK6+L+txbyCtYbS1skxq6wJpSuw7qBVJcc4s2sArGWKGJfg6XqIVCNGuIuJQySbpwXsv+i2Hb6PHRSHmkh...</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-03T23:17:44.732891" elapsed="0.052036"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-03T23:17:44.789309" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCXBEdyGMQ+RtLZnLYKUT3IHrJ7Y11CFox/2uhk5sUEXEnsPpHGrh35MYLFc+tFDwTzkOv43V15ROnFo3P3dCXWIyFK6+L+txbyCtYbS1skxq6wJpSuw7qBVJcc4s2sArGWKGJfg6XqIVCNGuIuJQySbpwXsv+i2Hb6PHRSHmkh...</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-03T23:17:44.785414" elapsed="0.003994"/>
</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-03T23:17:44.521669" elapsed="0.267870"/>
</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-03T23:17:44.791575" level="INFO">Executing command 'rm -rf ./certs &amp;&amp; mkdir ./certs'.</msg>
<msg time="2026-10-03T23:17:44.836398" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:44.836591" 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-03T23:17:44.791376" elapsed="0.045265"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.888582" 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-03T23:17:44.837058" elapsed="0.051648"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:44.889350" level="INFO">Executing command 'openssl genrsa -out ./certs/ca.key 2048'.</msg>
<msg time="2026-10-03T23:17:45.053883" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:45.054177" 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-03T23:17:44.889150" elapsed="0.165080"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:45.054925" 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-03T23:17:45.114468" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:45.114743" 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-03T23:17:45.054662" elapsed="0.060134"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:45.115560" level="INFO">Executing command 'openssl genrsa -out ./certs/server.key 2048'.</msg>
<msg time="2026-10-03T23:17:45.522961" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:45.523332" 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-03T23:17:45.115322" elapsed="0.408064"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:45.524217" 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-03T23:17:45.586643" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:45.586899" 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-03T23:17:45.523909" elapsed="0.063047"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:45.587653" 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-03T23:17:45.642175" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:45.642409" 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-03T23:17:45.587422" elapsed="0.055039"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:45.643164" level="INFO">Executing command 'openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub'.</msg>
<msg time="2026-10-03T23:17:45.706167" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:45.706361" 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-03T23:17:45.642904" elapsed="0.063508"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:45.707183" level="INFO">Executing command 'openssl genrsa -out ./certs/client.key 2048'.</msg>
<msg time="2026-10-03T23:17:46.090686" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:46.091059" 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-03T23:17:45.706935" elapsed="0.384184"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.091915" 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-03T23:17:46.145777" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:46.145993" 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-03T23:17:46.091611" elapsed="0.054469"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.146663" 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-03T23:17:46.201950" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:46.202178" 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-03T23:17:46.146465" elapsed="0.055766"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.202804" level="INFO">Executing command 'mv ./certs ./configuration-files/certs'.</msg>
<msg time="2026-10-03T23:17:46.256064" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:46.256277" 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-03T23:17:46.202610" elapsed="0.053717"/>
</kw>
<doc>Generates certificates for 2-way TLS authentication (ca, server, client)</doc>
<status status="PASS" start="2026-10-03T23:17:44.790688" elapsed="1.465783"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.304180" 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-03T23:17:46.256863" elapsed="0.047437"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.313083" 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-03T23:17:46.304651" elapsed="0.008551"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.321512" 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-03T23:17:46.313554" elapsed="0.008077"/>
</kw>
<doc>Upload netopeer2 configuration files needed for TLS transport</doc>
<status status="PASS" start="2026-10-03T23:17:44.789944" elapsed="1.531818"/>
</kw>
<kw name="Register keys and certificates in ODL controller" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.323522" level="INFO">Executing command 'cat ./configuration-files/certs/client.key'.</msg>
<msg time="2026-10-03T23:17:46.336147" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:46.336369" level="INFO">${pem-client-key} = -----BEGIN PRIVATE KEY-----
MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQCVaMxGwIYDlfFs
Bb2O3IDwfyNSlfPmy4nSgxxTlmZJmvckpTOJKD+7wdWJZQQHuRZuosHJy5jgSLSf
dA1zBf3lAxdsCZ59O2dWgOGLMJ46ur/ONrCzqx5rdS...</msg>
<msg time="2026-10-03T23:17:46.336460" 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-03T23:17:46.323175" elapsed="0.013331"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-03T23:17:46.337205" 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-03T23:17:46.337488" 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-03T23:17:46.336882" elapsed="0.000659"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-03T23:17:46.338380" level="INFO">${body} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwg...</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-03T23:17:46.337916" elapsed="0.000519"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:46.398117" level="INFO">POST Request : url=http://10.30.170.37: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': '1902', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEuwIBADANBgkqhkiG9w0BAQEFAASCBKUwggShAgEAAoIBAQCVaMxGwIYDlfFs
Bb2O3IDwfyNSlfPmy4nSgxxTlmZJmvckpTOJKD+7wdWJZQQHuRZuosHJy5jgSLSf
dA1zBf3lAxdsCZ59O2dWgOGLMJ46ur/ONrCzqx5rdSaOv4MbHE+MINliYJBRetnD
VpKVVr+MuNsmKhII/OIpb4rGvw6fqDeWjEcR/jikvlwbvL+4MpaegQDVPvKlAnTz
/e+FbAynNBwt9ggv7II71nGXlMwwaGURnb6xFw5HNErpeXp77hoGDbhJBvuOkitJ
7Be0ADCgUOq2GRPomgsAtaNnyuAABE+ehCeAf3ln/9L75AVRmr0ibKr0XTCyGG6l
jZXKSVeLAgMBAAECgf8nm8LQD/WZQgS+fD6ROo5Jd6864EGmZRvgKllYE7o9YrV3
Z+3bO1jdOmODxLtMyE0H9mIUDAeMOqj88elJg+a6AsJ3FOKI2RSMHmtoNq6Invlt
bVZ75J0azp57OVsh9ufsgmJ0GHqydGeKtr4DP4SZY1cb+i1WVsUVjFpPAJuspj95
xeB6IKd7g0CL7PIwElkJQ+Vn5fNbHWLXZ59ckfBkVm18MIqkRxHN31VSYq1fZKRX
CtULSAry6XFCQxzWGAb1g/rQutNRNVYYdIyCChfP2mVUzxEaVHxfcet8qzYp4is5
ja049yRlziELYjoR2OtYqT5ynBTD5fbKQrOnPrECgYEAtnHHux1qKwoL6t/4/2Yy
Ao+8526j0jQHHv76yDbcnFeQq3glcQw8dTRQD97WVACaisMVLaCpc1tnbQTYGwRf
a9IljZwlynxedsRfRxxmEKicg9vbdeaU+F1NAm3fwUsNt+gjzcE2IUNCohoYgLC4
wRaMfdv2i/faZuIsNiWDwO0CgYEA0aVxfO4F+nRYqVcCBMvmaqkfIvCvqQnh53lS
YMUIRPMO/zW/5Hmeh/Fc33rvwwhPDhxsgaZhdVZYN0bQQSuWfPdEL3ZmUZXYuKgI
n7GMSkXdXNo5GQ9cIBTVKsnuBG5xkQRf98NnJr4VvALQyBLFnAHj/CaIW6SxeNgo
8tRAA1cCgYEAqJ379Km459I/NXKO1K0E520lL9gHvEytkC4kZUqfFjev02oVYKfo
cIJKxIA1Iin0qu6l8iectKrzqcRiXoXqEuKEJp78JmpPfAD99eD/S8Ip9YwLBqp3
YBwLAoW92Q2evivke1NozdE2Ek9/+eBawMowSlozQSVvSssaBWkinfkCgYAZM3AO
+nXRg4bc5E6j0Pbjv2y0wIX9Jej38EeMxmKWFzmoSAfHKS97W/I0Ew0bPrZyFcyd
USjJ+BUmn+aMzvaKExcpNWxbRk4E9H4E5Eze6MMRVFIkxwnl+Vseh6OK+NPCAOqg
V+bga10lepkqU8dZV4jWWLNvgL6srh9OAWGohQKBgDnAvndxoWe+yoFfELS15/Nc
/T9zs5l1gtnxMKmmT5dELithZH18D4SLoG69oa1H5TgHVZ/+UgSy63xTEgA7+9JN
u6SPISC+IgBqlf/E6S1mJ5kQidM6+Go34+Z9SiWxXhNWoc1z75cGYLMSDPYhqK0j
mYhcVaPGpt8dlO7/+d2w
-----END PRIVATE KEY-----",
                "passphrase": ""
            }
        ]
    }
}
 
 </msg>
<msg time="2026-10-03T23:17:46.398515" level="INFO">POST Response : url=http://10.30.170.37:8181/rests/operations/netconf-keystore:add-keystore-entry 
 status=500, reason=Internal Server Error 
 headers={'Set-Cookie': 'JSESSIONID=node0li0yxevzgxoj1g104ca5j0otr6.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 02-Oct-2026 23:17:46 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-03T23:17:46.398744" 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-03T23:17:46.338732" elapsed="0.060066"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-03T23:17:46.400279" 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-03T23:17:46.399250" elapsed="0.001173">'[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-03T23:17:46.400803" elapsed="0.000086"/>
</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-03T23:17:46.401232" elapsed="0.000047"/>
</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-03T23:17:46.401573" elapsed="0.000041"/>
</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-03T23:17:46.401945" elapsed="0.000041"/>
</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-03T23:17:46.402330" elapsed="0.000041"/>
</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-03T23:17:46.402649" 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-03T23:17:46.403060" elapsed="0.000044"/>
</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-03T23:17:46.403422" elapsed="0.000046"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${device-certificate}</var>
<arg>server.crt</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-10-03T23:17:46.403771" elapsed="0.000486"/>
</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-03T23:17:46.404572" elapsed="0.000045"/>
</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-03T23:17:46.404941" 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-03T23:17:46.405320" elapsed="0.000040"/>
</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-03T23:17:46.405639" elapsed="0.000039"/>
</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-03T23:17:46.406051" elapsed="0.000043"/>
</kw>
<doc>Register pre-configured netopeer2 certificates and key in ODL-netconf keystore</doc>
<status status="FAIL" start="2026-10-03T23:17:46.322419" elapsed="0.083868">'[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-03T23:17:46.406638" elapsed="0.000048"/>
</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-03T23:17:46.407097" elapsed="0.000045"/>
</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-03T23:17:46.407529" 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-03T23:17:46.407992" elapsed="0.000068"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.409759" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-03T23:17:46.716533" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:17:46.716937" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:17:46.717069" 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-03T23:17:46.717159" 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-03T23:17:46.409416" elapsed="0.307793"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T23:17:46.718606" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T23:17:46.717934" elapsed="0.000761"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:46.719483" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-03T23:17:47.057908" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-03T23:17:47.058265" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:17:47.058356" 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-03T23:17:47.058439" 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-03T23:17:46.719131" elapsed="0.339356"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:47.059468" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-03T23:17:47.142492" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:47.142836" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-03T23:17:47.142930" level="INFO">${stderr} = </msg>
<msg time="2026-10-03T23:17:47.143011" 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-03T23:17:47.059004" elapsed="0.084094"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T23:17:47.143865" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-03T23:17:47.196119" 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-03T23:17:47.143598" elapsed="0.052645"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:47.204690" level="INFO">DELETE Request : url=http://10.30.170.37: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=node0li0yxevzgxoj1g104ca5j0otr6.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:47.204998" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '270'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:17:47.205239" 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-03T23:17:47.196547" elapsed="0.008746"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:47.214167" level="INFO">DELETE Request : url=http://10.30.170.37: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=node0li0yxevzgxoj1g104ca5j0otr6.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-03T23:17:47.214390" level="INFO">DELETE Response : url=http://10.30.170.37:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-10-03T23:17:47.214598" 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-03T23:17:47.205599" elapsed="0.009052"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-03T23:17:46.408633" elapsed="0.806160"/>
</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-03T23:17:44.520340" elapsed="2.694583">'[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-03T23:17:47.217863" level="INFO">Executing command 'pip uninstall docker-compose'.</msg>
<msg time="2026-10-03T23:17:47.958955" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T23:17:47.959341" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T23:17:47.959433" level="INFO">${stderr} = WARNING: Skipping docker-compose as it is not installed.</msg>
<msg time="2026-10-03T23:17:47.959529" 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-03T23:17:47.217491" elapsed="0.742085"/>
</kw>
<doc>Uninstall docker-compose on tools system</doc>
<status status="PASS" start="2026-10-03T23:17:47.216858" elapsed="0.742904"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-10-03T23:17:47.960337" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-03T23:17:47.960138" elapsed="0.001234"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-10-03T23:17:47.961705" elapsed="0.000789"/>
</kw>
<doc>Tearing down the setup.</doc>
<status status="PASS" start="2026-10-03T23:17:47.216387" elapsed="0.746228"/>
</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-03T23:09:46.369070" elapsed="481.593617"/>
</suite>
<status status="FAIL" start="2026-10-03T23:09:46.329397" elapsed="481.636135"/>
</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>
