<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-17T23:10:12.241134" 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-17T23:10:12.659944" 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-17T23:10:12.659530" elapsed="0.000465"/>
</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-17T23:10:12.662026" level="INFO">Length is 0.</msg>
<msg time="2026-10-17T23:10:12.662113" 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-17T23:10:12.661604" elapsed="0.000536"/>
</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-17T23:10:12.662285" elapsed="0.000503"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-17T23:10:12.663561" level="INFO">Logging into '10.30.171.83:22' as 'jenkins'.</msg>
<msg time="2026-10-17T23:10:13.133929" 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 17 23:09:38 UTC 2026

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

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

   https://ubuntu.com/workshop

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-51161-112-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-17T23:10:12.663315" elapsed="0.470755"/>
</kw>
<msg time="2026-10-17T23:10:13.134151" 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-17T23:10:12.662945" elapsed="0.471285"/>
</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-17T23:10:12.661157" elapsed="0.473183"/>
</kw>
<msg time="2026-10-17T23:10:13.134392" 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-17T23:10:12.660669" elapsed="0.473771"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-10-17T23:10:12.660162" elapsed="0.474353"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-10-17T23:10:13.134593" elapsed="0.000047"/>
</return>
<msg time="2026-10-17T23:10:13.134796" 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-17T23:10:12.659138" elapsed="0.475684"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:13.135465" 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-17T23:10:13.135059" elapsed="0.000447"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-17T23:10:13.138512" 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-17T23:10:13.135662" elapsed="0.002915"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Read Until Prompt" owner="SSHLibrary">
<msg time="2026-10-17T23:10:13.739492" level="INFO">[?2004l  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 8053k  100 8053k    0     0  14.1M      0 --:--:-- --:--:-- --:--:-- 14.1M
[?2004h[jenkins@releng-51161-112-1-docker-0 ~]&gt;</msg>
<doc>Consumes and returns the server output until the prompt is found.</doc>
<status status="PASS" start="2026-10-17T23:10:13.139683" elapsed="0.599935"/>
</kw>
<msg time="2026-10-17T23:10:13.739739" 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-17T23:10:13.139210" elapsed="0.600556"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:13.740223" level="INFO">Executing command 'sudo chmod +x /usr/local/bin/docker-compose'.</msg>
<msg time="2026-10-17T23:10:13.762883" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:10:13.763009" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:10:13.763049" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:10:13.763089" 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-17T23:10:13.740000" elapsed="0.023110"/>
</kw>
<doc>Install docker-compose on tools system.</doc>
<status status="PASS" start="2026-10-17T23:10:12.657832" elapsed="1.105429"/>
</kw>
<kw name="Pull Netopeer2 Docker Image" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:13.763889" level="INFO">Executing command 'docker pull sysrepo/sysrepo-netopeer2:latest'.</msg>
<msg time="2026-10-17T23:10:22.084683" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:10:22.085083" level="INFO">${stdout} = latest: Pulling from sysrepo/sysrepo-netopeer2
399fb1102f3f: Pulling fs layer
d51af753c3d3: Pulling fs layer
fc878cd0a91c: Pulling fs layer
6154df8ff988: Pulling fs layer
9b0152ba3415: Pulling fs laye...</msg>
<msg time="2026-10-17T23:10:22.085184" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:10:22.085268" 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-17T23:10:13.763733" elapsed="8.321585"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.086343" level="INFO">Executing command 'docker images'.</msg>
<msg time="2026-10-17T23:10:22.217168" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:10:22.217430" level="INFO">${stdout} = IMAGE                              ID             DISK USAGE   CONTENT SIZE   EXTRA
sysrepo/sysrepo-netopeer2:latest   36cc1d841c97        914MB          232MB        </msg>
<msg time="2026-10-17T23:10:22.217526" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:10:22.217670" 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-17T23:10:22.085837" elapsed="0.131889"/>
</kw>
<doc>Pulls the netopeer image from the docker repository.</doc>
<status status="PASS" start="2026-10-17T23:10:13.763450" elapsed="8.454448"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.263987" level="INFO">[chan 4] Opened sftp connection (server version 3)</msg>
<msg time="2026-10-17T23:10:22.274561" 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-17T23:10:22.218290" elapsed="0.056461"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.284205" 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-17T23:10:22.275149" elapsed="0.009178"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.285041" level="INFO">Executing command 'sed -i -e 's/ODL_SYSTEM_IP/10.30.171.120/g' docker-compose.yaml'.</msg>
<msg time="2026-10-17T23:10:22.298167" 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-17T23:10:22.284752" elapsed="0.013552"/>
</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-17T23:10:22.311196" elapsed="0.000865"/>
</kw>
<msg time="2026-10-17T23:10:22.312166" 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-17T23:10:22.310353" elapsed="0.001930"/>
</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-17T23:10:22.309697" elapsed="0.002741"/>
</kw>
<msg time="2026-10-17T23:10:22.312523" 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-17T23:10:22.304079" elapsed="0.008577"/>
</kw>
<msg time="2026-10-17T23:10:22.312876" 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-17T23:10:22.303447" elapsed="0.009479"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.313566" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_SSH/4334/g' docker-compose.yaml'.</msg>
<msg time="2026-10-17T23:10:22.347978" 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-17T23:10:22.313319" elapsed="0.034782"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.348732" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml'.</msg>
<msg time="2026-10-17T23:10:22.403928" 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-17T23:10:22.348475" elapsed="0.055600"/>
</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-17T23:10:22.416548" elapsed="0.000787"/>
</kw>
<msg time="2026-10-17T23:10:22.417436" 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-17T23:10:22.415780" elapsed="0.001757"/>
</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-17T23:10:22.415148" elapsed="0.002669"/>
</kw>
<msg time="2026-10-17T23:10:22.417909" 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-17T23:10:22.409646" elapsed="0.008376"/>
</kw>
<msg time="2026-10-17T23:10:22.418230" 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-17T23:10:22.409088" elapsed="0.009192"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.419212" 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-17T23:10:22.418639" 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-17T23:10:22.432172" elapsed="0.000830"/>
</kw>
<msg time="2026-10-17T23:10:22.433108" 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-17T23:10:22.431381" elapsed="0.001833"/>
</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-17T23:10:22.430769" elapsed="0.002592"/>
</kw>
<msg time="2026-10-17T23:10:22.433446" 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-17T23:10:22.425276" elapsed="0.008260"/>
</kw>
<msg time="2026-10-17T23:10:22.433811" 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-17T23:10:22.424738" elapsed="0.009123"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.434890" 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-17T23:10:22.434189" elapsed="0.000755"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.436054" 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-17T23:10:22.435359" elapsed="0.000781"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.438937" 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-17T23:10:22.436511" elapsed="0.002536"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.442295" 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-17T23:10:22.439422" elapsed="0.002970"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.444283" 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-17T23:10:22.442741" elapsed="0.001599"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.446418" 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-17T23:10:22.444596" elapsed="0.001880"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.448421" 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-17T23:10:22.446731" elapsed="0.001747"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.450703" 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-17T23:10:22.448807" elapsed="0.001953"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.452734" 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-17T23:10:22.451054" elapsed="0.001736"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.453158" 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-17T23:10:22.647772" 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-17T23:10:22.453038" elapsed="0.194868"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.648544" level="INFO">Executing command 'awk '{print $2}' incorrect_ssh_host_rsa_key.pub'.</msg>
<msg time="2026-10-17T23:10:22.700207" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:10:22.700423" level="INFO">${incorrect_public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHT...</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-17T23:10:22.648331" elapsed="0.052147"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:22.704257" level="INFO">${INCORRECT_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHT...</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-17T23:10:22.700972" elapsed="0.003386"/>
</kw>
<doc>Get the suite ready for callhome test cases.</doc>
<status status="PASS" start="2026-10-17T23:10:12.657515" elapsed="10.046971"/>
</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-17T23:10:22.707120" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab50916590&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-17T23:10:22.706653" elapsed="0.000835"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.708429" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:10:22.752067" 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-17T23:10:22.708222" elapsed="0.043974"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.752913" 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-17T23:10:22.996640" 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-17T23:10:22.752701" elapsed="0.244084"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:22.997430" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:10:23.044060" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:10:23.044274" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux...</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-17T23:10:22.997212" elapsed="0.047119"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:23.047907" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux...</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-17T23:10:23.044767" elapsed="0.003257"/>
</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-17T23:10:22.706014" elapsed="0.342140"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:10:23.093565" 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-17T23:10:23.049190" elapsed="0.044556"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:10:23.103910" 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-17T23:10:23.094137" elapsed="0.009920"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-17T23:10:23.048500" elapsed="0.055684"/>
</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-17T23:10:23.106217" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:23.105472" elapsed="0.000857"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:10:23.107624" 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-17T23:10:23.107914" 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-17T23:10:23.107321" elapsed="0.000670"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:10:23.109083" 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-17T23:10:23.108334" elapsed="0.000840"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:23.106710" elapsed="0.002583"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:23.106388" elapsed="0.002953"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:23.105416" elapsed="0.003974"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:10:23.110223" 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-17T23:10:23.109745" elapsed="0.000537"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:10:23.111149" 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-17T23:10:23.110668" elapsed="0.000539"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:10:23.112414" 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-17T23:10:23.111537" elapsed="0.000933"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:10:23.113317" 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-17T23:10:23.112870" elapsed="0.000503"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:24.146542" level="INFO">POST Request : url=http://10.30.171.120: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:10:24.146788" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:10:24 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:24.147051" 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-17T23:10:23.113732" elapsed="1.033377"/>
</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-17T23:10:24.147554" elapsed="0.001265"/>
</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-17T23:10:23.104747" elapsed="1.044250"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:10:24.149795" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-17T23:10:24.488223" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:10:24.488503" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:10:24.488639" 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-17T23:10:24.488741" 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-17T23:10:24.149407" elapsed="0.339381"/>
</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-17T23:10:24.492148" level="INFO">@{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-17T23:10:24.491387" elapsed="0.000817"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:10:24.493049" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:24.492484" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:24.492430" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:24.552393" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:24.554039" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:24.554254" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:24.499392" elapsed="0.054916"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:24.555112" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:24.554478" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:24.556516" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:24.555689" elapsed="0.000964"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:24.555284" elapsed="0.001438"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:24.554433" 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-17T23:10:24.557103" elapsed="0.000404"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:10:24.558285" elapsed="0.001067"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:24.557987" elapsed="0.001446"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:24.561138" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:24.560058" elapsed="0.001365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:24.559745" elapsed="0.001871">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:24.557691" elapsed="0.004063">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:24.498425" elapsed="0.063579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:24.490610" elapsed="0.071670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:26.564932" level="INFO">@{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-17T23:10:26.564109" 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-17T23:10:26.565755" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:26.565207" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:26.565157" elapsed="0.000773"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:26.584095" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:26.584407" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:26.584666" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:26.571750" elapsed="0.012974"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:26.585483" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:26.584894" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:26.586911" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:26.586088" elapsed="0.000954"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:26.585692" elapsed="0.001422"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:26.584851" 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-17T23:10:26.587472" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:10:26.588519" elapsed="0.000986"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:26.588224" elapsed="0.001426"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:26.591198" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:26.590153" elapsed="0.001212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:26.589839" elapsed="0.001679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:26.587971" elapsed="0.003855">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:26.570836" elapsed="0.021235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:26.563195" elapsed="0.029082">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:28.594860" level="INFO">@{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-17T23:10:28.594061" 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-17T23:10:28.595644" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:28.595118" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:28.595072" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:28.613626" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:28.613926" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:28.614156" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:28.601474" elapsed="0.012735"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:28.614980" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:28.614376" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:28.616350" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:28.615508" elapsed="0.000947"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:28.615146" elapsed="0.001377"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:28.614330" 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-17T23:10:28.616905" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:10:28.617977" elapsed="0.000930"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:28.617647" elapsed="0.001360"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:28.620550" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:28.619551" elapsed="0.001200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:28.619259" elapsed="0.001639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:28.617361" elapsed="0.003686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:28.600625" elapsed="0.020636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:28.593086" elapsed="0.028367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:30.624600" level="INFO">@{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-17T23:10:30.623775" 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-17T23:10:30.625371" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:30.624848" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:30.624799" elapsed="0.000741"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:30.643521" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:30.643861" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:30.644114" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:30.631111" elapsed="0.013058"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:30.644922" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:30.644332" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:30.646456" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:30.645564" elapsed="0.000999"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:30.645190" elapsed="0.001482"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:30.644291" elapsed="0.002427"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:10:30.647043" 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-17T23:10:30.648079" elapsed="0.000962"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:30.647766" elapsed="0.001353"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:30.650605" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:30.649613" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:30.649294" elapsed="0.001633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:30.647476" elapsed="0.003604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:30.630233" elapsed="0.021057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:30.622884" elapsed="0.028602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:32.654211" level="INFO">@{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-17T23:10:32.653349" elapsed="0.000928"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:10:32.655001" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:32.654448" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:32.654403" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:32.672769" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:32.673159" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:32.673364" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:32.660687" 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-17T23:10:32.674205" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:32.673614" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:32.675606" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:32.674768" elapsed="0.000953"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:32.674373" elapsed="0.001428"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:32.673539" elapsed="0.002314"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:10:32.676230" 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-17T23:10:32.677271" elapsed="0.001405"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:32.676981" elapsed="0.001776"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:32.680222" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:32.679236" elapsed="0.001154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:32.678922" elapsed="0.001618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:32.676708" elapsed="0.003993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:32.659810" elapsed="0.021100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:32.652371" elapsed="0.028754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:34.683630" level="INFO">@{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-17T23:10:34.682829" elapsed="0.000866"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:10:34.684372" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:34.683864" elapsed="0.000623"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:34.683819" elapsed="0.000719"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:34.703269" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:34.703554" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:34.703807" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:34.690274" elapsed="0.013587"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:34.704619" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:34.704044" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:34.705986" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:34.705176" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:34.704789" elapsed="0.001371"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:34.704002" 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-17T23:10:34.706505" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:10:34.707522" elapsed="0.000965"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:34.707235" elapsed="0.001330"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:34.710064" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:34.709094" elapsed="0.001134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:34.708763" elapsed="0.001609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:34.706990" elapsed="0.003502">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:34.689393" elapsed="0.021413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:34.681978" elapsed="0.029052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:36.713673" level="INFO">@{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-17T23:10:36.712854" 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-17T23:10:36.714437" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:36.713914" elapsed="0.000640"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:36.713868" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:36.733401" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:36.733739" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:36.733985" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:36.720708" elapsed="0.013335"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:36.734796" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:36.734206" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:36.736189" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:36.735368" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:36.734988" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:36.734166" 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-17T23:10:36.736752" 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-17T23:10:36.737771" elapsed="0.001029"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:36.737449" elapsed="0.001445"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:36.740382" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:36.739399" elapsed="0.001147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:36.739110" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:36.737207" elapsed="0.003731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:36.719823" elapsed="0.021347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:36.711980" elapsed="0.029384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:38.743787" level="INFO">@{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-17T23:10:38.743009" elapsed="0.000842"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:10:38.744532" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:38.744042" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:38.743997" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:38.763193" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:38.763470" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:38.763703" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:38.750225" elapsed="0.013531"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:38.764493" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:38.763915" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:38.765902" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:38.765099" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:38.764695" elapsed="0.001404"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:38.763876" elapsed="0.002267"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:10:38.766447" 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-17T23:10:38.767474" elapsed="0.000950"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:38.767187" elapsed="0.001424"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:38.770079" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:38.769097" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:38.768786" elapsed="0.001623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:38.766916" elapsed="0.003616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:38.749353" elapsed="0.021431">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:38.742145" elapsed="0.028856">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:40.775871" level="INFO">@{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-17T23:10:40.775062" 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-17T23:10:40.776661" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:40.776130" elapsed="0.000650"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:40.776085" elapsed="0.000748"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:40.795402" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:40.795733" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:40.795977" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:40.782313" elapsed="0.013721"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:40.796773" elapsed="0.000130"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:40.796197" elapsed="0.000800"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:40.798238" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:40.797421" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:40.797050" elapsed="0.001363"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:40.796156" 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-17T23:10:40.798796" 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-17T23:10:40.799802" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:40.799481" elapsed="0.001336"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:40.802268" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:40.801295" elapsed="0.001123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:40.801007" elapsed="0.001559">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:40.799249" elapsed="0.003478">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:40.781431" elapsed="0.021502">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:40.771819" elapsed="0.031334">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:42.805608" level="INFO">@{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-17T23:10:42.804800" 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-17T23:10:42.806382" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:42.805838" elapsed="0.000659"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:42.805793" elapsed="0.000756"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:42.824288" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:42.824686" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:42.824893" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:42.812067" elapsed="0.012901"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:42.825704" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:42.825128" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:42.827079" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:42.826263" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:42.825872" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:42.825088" 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-17T23:10:42.827642" 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-17T23:10:42.828647" elapsed="0.000919"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:42.828328" elapsed="0.001352"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:42.831562" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:42.830146" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:42.829840" elapsed="0.002062">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:42.828093" elapsed="0.003955">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:42.811185" elapsed="0.021067">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:42.803957" elapsed="0.028484">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:44.835071" level="INFO">@{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-17T23:10:44.834255" 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-17T23:10:44.835837" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:44.835306" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:44.835261" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:44.854272" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:44.854561" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:44.854793" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:44.841473" elapsed="0.013374"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:44.855602" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:44.855029" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:44.856965" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:44.856157" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:44.855773" elapsed="0.001366"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:44.854986" 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-17T23:10:44.857485" 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-17T23:10:44.858487" elapsed="0.000933"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:44.858198" elapsed="0.001299"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:44.860972" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:44.860003" elapsed="0.001120">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:44.859695" elapsed="0.001573">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:44.857958" elapsed="0.003432">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:44.840617" elapsed="0.021100">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:44.833369" elapsed="0.028551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:46.864396" level="INFO">@{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-17T23:10:46.863620" elapsed="0.000842"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:10:46.865172" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:46.864655" elapsed="0.000637"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:46.864609" elapsed="0.000735"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:46.883295" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:46.883608" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:46.883839" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:46.871301" elapsed="0.012594"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:46.884662" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:46.884077" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:46.886033" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:46.885220" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:46.884830" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:46.884036" elapsed="0.002219"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:10:46.886560" 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-17T23:10:46.887599" elapsed="0.000919"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:46.887278" elapsed="0.001353"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:46.890130" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:46.889137" elapsed="0.001146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:46.888800" elapsed="0.001710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:46.887043" elapsed="0.003631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:46.870414" elapsed="0.020467">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:46.862771" elapsed="0.028328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:48.894018" level="INFO">@{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-17T23:10:48.893121" elapsed="0.000972"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:10:48.894841" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:48.894289" elapsed="0.000692"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:48.894235" elapsed="0.000807"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:48.912152" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:48.912479" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:48.912722" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:48.900698" elapsed="0.012078"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:48.913510" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:48.912957" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:48.915008" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:48.914176" elapsed="0.000938"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:48.913762" elapsed="0.001419"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:48.912894" 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-17T23:10:48.915527" 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-17T23:10:48.916543" elapsed="0.000936"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:48.916254" elapsed="0.001430"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:48.919164" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:48.918172" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:48.917860" elapsed="0.001614">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:48.916011" elapsed="0.003627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:48.899829" elapsed="0.020023">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:48.892085" elapsed="0.027984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:50.923608" level="INFO">@{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-17T23:10:50.922732" elapsed="0.000950"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:10:50.924403" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:50.923871" elapsed="0.000650"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:50.923820" elapsed="0.000791"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:50.942014" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:50.942322" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:50.942540" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:50.930228" elapsed="0.012398"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:50.943363" elapsed="0.000145"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:50.942787" elapsed="0.000824"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:50.944858" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:50.944055" elapsed="0.000933"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:50.943666" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:50.942746" 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-17T23:10:50.945409" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:10:50.946439" elapsed="0.000961"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:50.946148" elapsed="0.001332"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:50.949059" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:50.948055" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:50.947679" elapsed="0.001691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:50.945880" elapsed="0.003615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:50.929362" elapsed="0.020381">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:50.921088" elapsed="0.028873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:52.952734" level="INFO">@{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-17T23:10:52.951863" 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-17T23:10:52.953539" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:52.953004" elapsed="0.000689"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:52.952931" elapsed="0.000817"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:52.970736" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:52.971165" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:52.971365" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:52.959328" elapsed="0.012089"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:52.972240" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:52.971608" elapsed="0.000749"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:52.973640" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:52.972815" elapsed="0.000933"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:52.972408" elapsed="0.001408"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:52.971533" 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-17T23:10:52.974190" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:10:52.975241" elapsed="0.001510"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:52.974928" elapsed="0.001907"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:52.978319" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:52.977314" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:52.977022" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:52.974682" elapsed="0.004108">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:52.958462" elapsed="0.020560">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:52.950883" elapsed="0.028335">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:54.982227" level="INFO">@{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-17T23:10:54.981291" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:10:54.983055" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:54.982486" elapsed="0.000689"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:54.982435" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:55.000065" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:55.000366" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:55.000598" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:54.988808" elapsed="0.011849"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:55.001407" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:55.000818" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:55.002795" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:55.002003" elapsed="0.000897"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:55.001605" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:55.000777" 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-17T23:10:55.003337" 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-17T23:10:55.004355" elapsed="0.000956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:55.004065" elapsed="0.001326"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:55.006842" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:55.005870" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:55.005553" elapsed="0.001619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:55.003802" elapsed="0.003491">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:54.987960" elapsed="0.019668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:54.980291" elapsed="0.027538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:57.010636" level="INFO">@{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-17T23:10:57.009770" 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-17T23:10:57.011422" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:57.010895" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:57.010844" elapsed="0.000785"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:57.029348" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:57.029688" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:57.029909" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:57.017709" elapsed="0.012279"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:57.030754" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:57.030149" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:57.032174" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:57.031334" elapsed="0.000947"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:57.030922" elapsed="0.001427"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:57.030109" 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-17T23:10:57.033063" elapsed="0.000473"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:10:57.034268" elapsed="0.000991"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:57.033970" elapsed="0.001370"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:57.036823" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:57.035819" elapsed="0.001215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:57.035501" elapsed="0.001772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:57.033694" elapsed="0.003709">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:57.016832" elapsed="0.020825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:57.008800" elapsed="0.029059">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:59.040691" level="INFO">@{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-17T23:10:59.039827" 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="NOT RUN" start="2026-10-17T23:10:59.041476" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:59.040968" elapsed="0.000659"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:59.040897" elapsed="0.000789"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:10:59.061640" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:10:59.061966" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:10:59.062165" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:10:59.047269" elapsed="0.014950"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:10:59.062976" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:10:59.062374" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:10:59.064334" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:10:59.063520" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-17T23:10:59.063145" elapsed="0.001361"/>
</branch>
<status status="PASS" start="2026-10-17T23:10:59.062335" 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-17T23:10:59.064885" 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-17T23:10:59.065899" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:10:59.065608" elapsed="0.001420"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:10:59.068484" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:59.067494" elapsed="0.001184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:59.067204" elapsed="0.001627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:59.065339" elapsed="0.003641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:59.046399" elapsed="0.022794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:59.038843" elapsed="0.030542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:01.072785" level="INFO">@{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-17T23:11:01.071912" 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-17T23:11:01.073557" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:01.073055" elapsed="0.000652"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:01.073007" elapsed="0.000756"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:01.091453" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:01.091789" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:01.092035" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:01.079266" elapsed="0.012825"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:01.092851" elapsed="0.000160"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:01.092245" elapsed="0.000838"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:01.094335" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:01.093504" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:01.093136" elapsed="0.001370"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:01.092206" elapsed="0.002343"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:01.094887" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:01.095911" elapsed="0.000976"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:01.095606" elapsed="0.001383"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:01.098467" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:01.097437" elapsed="0.001221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:01.097152" elapsed="0.001657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:01.095338" elapsed="0.003613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:01.078406" elapsed="0.020757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:01.070989" elapsed="0.028368">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:03.102078" level="INFO">@{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-17T23:11:03.101214" elapsed="0.000935"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:03.102872" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:03.102321" elapsed="0.000698"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:03.102274" elapsed="0.000798"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:03.122540" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:03.122980" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:03.123182" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:03.108566" elapsed="0.014670"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:03.123995" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:03.123394" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:03.125332" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:03.124525" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:03.124165" elapsed="0.001345"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:03.123354" 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-17T23:11:03.125893" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:03.126894" elapsed="0.001414"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:03.126606" elapsed="0.001787"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:03.129880" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:03.128889" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:03.128562" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:03.126342" elapsed="0.003988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:03.107726" elapsed="0.022808">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:03.100286" elapsed="0.030477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:05.133461" level="INFO">@{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-17T23:11:05.132652" 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-17T23:11:05.134257" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:05.133735" elapsed="0.000640"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:05.133688" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:05.150892" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:05.151228" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:05.151435" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:05.139996" elapsed="0.011495"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:05.152290" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:05.151693" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:05.153689" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:05.152859" elapsed="0.000937"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:05.152463" elapsed="0.001404"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:05.151649" 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-17T23:11:05.154293" 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-17T23:11:05.155320" elapsed="0.000949"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:05.155027" elapsed="0.001321"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:05.157803" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:05.156827" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:05.156511" elapsed="0.001619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:05.154759" elapsed="0.003495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:05.139121" elapsed="0.019428">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:05.131730" elapsed="0.027064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:07.161540" level="INFO">@{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-17T23:11:07.160737" 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-17T23:11:07.162342" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:07.161817" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:07.161770" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:07.180612" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:07.180898" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:07.181138" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:07.168513" elapsed="0.012680"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:07.181920" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:07.181348" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:07.183351" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:07.182502" elapsed="0.000954"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:07.182110" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:07.181308" 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-17T23:11:07.183918" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:07.184946" elapsed="0.000945"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:07.184639" elapsed="0.001356"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:07.187418" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:07.186443" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:07.186157" elapsed="0.001678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:07.184364" elapsed="0.003621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:07.167665" elapsed="0.020525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:07.159777" elapsed="0.028608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:09.191124" level="INFO">@{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-17T23:11:09.190261" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:09.191895" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:09.191366" elapsed="0.000673"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:09.191320" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:09.210251" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:09.210539" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:09.210783" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:09.197810" elapsed="0.013029"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:09.211558" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:09.211017" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:09.213043" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:09.212187" elapsed="0.000963"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:09.211775" elapsed="0.001444"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:09.210975" elapsed="0.002289"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:09.213597" 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-17T23:11:09.214599" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:09.214284" elapsed="0.001449"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:09.217247" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:09.216244" elapsed="0.001155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:09.215953" elapsed="0.001593">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:09.214050" elapsed="0.003657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:09.196947" elapsed="0.021014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:09.189340" elapsed="0.028823">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:11.221277" level="INFO">@{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-17T23:11:11.220450" elapsed="0.000894"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:11.222072" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:11.221516" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:11.221470" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:11.239484" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:11.239811" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:11.240061" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:11.227741" 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-17T23:11:11.240849" elapsed="0.000158"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:11.240274" elapsed="0.000804"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:11.242313" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:11.241498" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:11.241131" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:11.240233" 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-17T23:11:11.242885" elapsed="0.000379"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:11.243952" elapsed="0.000917"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:11.243639" elapsed="0.001329"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:11.246395" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:11.245416" elapsed="0.001130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:11.245131" elapsed="0.001600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:11.243374" elapsed="0.003481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:11.226884" elapsed="0.020202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:11.219555" elapsed="0.027726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:13.249995" level="INFO">@{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-17T23:11:13.249135" elapsed="0.000928"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:13.250769" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:13.250238" elapsed="0.000651"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:13.250191" elapsed="0.000776"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:13.268087" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:13.268468" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:13.268712" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:13.256469" elapsed="0.012299"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:13.269533" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:13.268959" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:13.270972" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:13.270136" elapsed="0.000946"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:13.269739" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:13.268891" elapsed="0.002306"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:13.271501" 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-17T23:11:13.272513" elapsed="0.001452"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:13.272224" elapsed="0.001825"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:13.275476" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:13.274501" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:13.274213" elapsed="0.001604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:13.271988" elapsed="0.003974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:13.255616" elapsed="0.020555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:13.248228" elapsed="0.028134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:15.279073" level="INFO">@{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-17T23:11:15.278236" elapsed="0.000906"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:15.279875" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:15.279317" elapsed="0.000697"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:15.279269" elapsed="0.000799"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:15.297854" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:15.298156" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:15.298356" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:15.285531" elapsed="0.012879"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:15.299174" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:15.298599" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:15.300537" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:15.299745" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:15.299343" elapsed="0.001401"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:15.298528" 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-17T23:11:15.301116" 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-17T23:11:15.302117" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:15.301809" elapsed="0.001318"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:15.304541" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:15.303596" elapsed="0.001134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:15.303287" elapsed="0.001603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:15.301541" elapsed="0.003497">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:15.284697" elapsed="0.020635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:15.277300" elapsed="0.028229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:17.308168" level="INFO">@{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-17T23:11:17.307343" 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-17T23:11:17.308966" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:17.308404" elapsed="0.000680"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:17.308358" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:17.326060" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:17.326342" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:17.326560" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:17.315096" elapsed="0.011552"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:17.327378" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:17.326806" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:17.328765" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:17.327971" elapsed="0.000900"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:17.327544" elapsed="0.001415"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:17.326766" 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-17T23:11:17.329308" 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-17T23:11:17.330312" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:17.330019" elapsed="0.001313"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:17.332802" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:17.331817" elapsed="0.001154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:17.331494" elapsed="0.001710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:17.329760" elapsed="0.003574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:17.314220" elapsed="0.019319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:17.306432" elapsed="0.027340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:19.336509" level="INFO">@{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-17T23:11:19.335708" 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-17T23:11:19.337390" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:19.336784" elapsed="0.000726"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:19.336737" elapsed="0.000828"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:19.354887" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:19.355198" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:19.355397" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:19.343135" elapsed="0.012320"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:19.356240" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:19.355656" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:19.357641" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:19.356810" elapsed="0.000939"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:19.356407" elapsed="0.001410"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:19.355613" 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-17T23:11:19.358184" 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-17T23:11:19.359177" elapsed="0.000924"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:19.358868" elapsed="0.001390"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:19.361755" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:19.360750" elapsed="0.001157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:19.360430" elapsed="0.001646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:19.358633" elapsed="0.003567">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:19.342270" elapsed="0.020133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:19.334739" elapsed="0.027889">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:21.368557" level="INFO">@{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-17T23:11:21.367711" 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="NOT RUN" start="2026-10-17T23:11:21.369373" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:21.368839" elapsed="0.000655"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:21.368792" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:21.387704" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:21.388031" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:21.388283" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:21.375272" elapsed="0.013100"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:21.389336" elapsed="0.000401"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:21.388622" elapsed="0.001194"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:21.391111" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:21.390267" elapsed="0.000949"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:21.389869" elapsed="0.001416"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:21.388524" elapsed="0.002804"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:21.391672" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:21.392695" elapsed="0.001005"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:21.392367" elapsed="0.001419"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:21.395907" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:21.394428" elapsed="0.001668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:21.394060" elapsed="0.002187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:21.392130" elapsed="0.004239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:21.374355" elapsed="0.022250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:21.366558" elapsed="0.030250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:23.399565" level="INFO">@{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-17T23:11:23.398750" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:23.400430" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:23.399847" elapsed="0.000701"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:23.399798" elapsed="0.000838"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:23.417898" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:23.418311" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:23.418510" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:23.406168" elapsed="0.012395"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:23.419329" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:23.418757" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:23.420705" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:23.419891" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:23.419496" elapsed="0.001384"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:23.418715" 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-17T23:11:23.421253" 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-17T23:11:23.422253" elapsed="0.001391"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:23.421966" elapsed="0.001759"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:23.425204" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:23.424201" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:23.423889" elapsed="0.001614">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:23.421708" elapsed="0.003953">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:23.405307" elapsed="0.020561">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:23.397783" elapsed="0.028300">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:25.428517" level="INFO">@{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-17T23:11:25.427744" 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-17T23:11:25.429282" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:25.428774" elapsed="0.000623"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:25.428729" elapsed="0.000721"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:25.446117" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:25.446395" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:25.446621" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:25.435015" elapsed="0.011662"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:25.447408" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:25.446835" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:25.448780" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:25.447996" elapsed="0.000887"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:25.447602" elapsed="0.001371"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:25.446794" 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-17T23:11:25.449323" 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-17T23:11:25.450326" elapsed="0.000934"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:25.450033" elapsed="0.001306"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:25.452791" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:25.451821" elapsed="0.001139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:25.451500" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:25.449773" elapsed="0.003454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:25.434093" elapsed="0.019417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:25.426904" elapsed="0.026837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:27.456100" level="INFO">@{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-17T23:11:27.455298" elapsed="0.000866"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:27.456842" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:27.456325" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:27.456280" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:27.474451" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:27.474779" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:27.475028" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:27.462877" elapsed="0.012206"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:27.475832" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:27.475245" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:27.477199" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:27.476392" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:27.476026" elapsed="0.001345"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:27.475204" elapsed="0.002212"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:27.477753" 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-17T23:11:27.478746" elapsed="0.000933"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:27.478427" elapsed="0.001330"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:27.481199" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:27.480228" elapsed="0.001121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:27.479937" elapsed="0.001664">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:27.478195" elapsed="0.003538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:27.462025" elapsed="0.019927">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:27.454454" elapsed="0.027697">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:29.484779" level="INFO">@{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-17T23:11:29.483952" 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-17T23:11:29.485535" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:29.485040" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:29.484994" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:29.502458" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:29.502800" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:29.503027" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:29.491258" elapsed="0.011824"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:29.503817" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:29.503238" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:29.505193" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:29.504376" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:29.504008" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:29.503199" elapsed="0.002212"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:29.505748" 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-17T23:11:29.506760" elapsed="0.000943"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:29.506439" elapsed="0.001428"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:29.509339" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:29.508349" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:29.508061" elapsed="0.001617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:29.506199" elapsed="0.003605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:29.490394" elapsed="0.019635">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:29.483053" elapsed="0.027170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:31.513478" level="INFO">@{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-17T23:11:31.512679" elapsed="0.000866"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:31.514350" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:31.513757" elapsed="0.000712"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:31.513711" elapsed="0.000811"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:31.530332" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:31.530668" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:31.530890" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:31.520063" elapsed="0.010913"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:31.531719" elapsed="0.000136"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:31.531139" elapsed="0.000807"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:31.533201" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:31.532376" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:31.532002" elapsed="0.001374"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:31.531098" 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-17T23:11:31.533758" 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-17T23:11:31.534756" elapsed="0.000959"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:31.534437" elapsed="0.001359"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:31.537254" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:31.536268" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:31.535980" elapsed="0.001572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:31.534202" elapsed="0.003511">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:31.519189" elapsed="0.018750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:31.511169" elapsed="0.026970">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:33.540776" level="INFO">@{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-17T23:11:33.539963" 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-17T23:11:33.541561" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:33.541038" elapsed="0.000676"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:33.540991" elapsed="0.000776"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:33.557684" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:33.558101" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:33.558304" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:33.547331" elapsed="0.011027"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:33.559284" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:33.558515" elapsed="0.000919"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:33.560779" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:33.559976" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:33.559502" elapsed="0.001476"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:33.558475" elapsed="0.002550"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:33.561326" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:33.562399" elapsed="0.000975"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:33.562110" elapsed="0.001345"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:33.565408" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:33.563961" elapsed="0.001599">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:33.563650" elapsed="0.002090">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:33.561787" elapsed="0.004077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:33.546429" elapsed="0.019703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:33.539045" elapsed="0.027285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:35.569060" level="INFO">@{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-17T23:11:35.568224" 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-17T23:11:35.569831" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:35.569301" elapsed="0.000674"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:35.569253" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:35.586055" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:35.586346" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:35.586543" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:35.575535" elapsed="0.011095"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:35.587364" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:35.586789" elapsed="0.000690"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:35.588751" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:35.587963" elapsed="0.000894"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:35.587530" elapsed="0.001460"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:35.586748" elapsed="0.002289"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:35.589340" 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-17T23:11:35.590336" elapsed="0.000937"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:35.590052" elapsed="0.001300"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:35.592810" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:35.591828" elapsed="0.001160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:35.591512" elapsed="0.001625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:35.589796" elapsed="0.003464">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:35.574686" elapsed="0.018865">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:35.567292" elapsed="0.026494">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:37.596417" level="INFO">@{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-17T23:11:37.595623" 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-17T23:11:37.597235" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:37.596688" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:37.596641" elapsed="0.000768"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:37.614400" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:37.614733" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:37.614981" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:37.603384" elapsed="0.011653"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:37.615841" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:37.615200" elapsed="0.000800"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:37.617247" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:37.616419" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:37.616054" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:37.615159" 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-17T23:11:37.617799" 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-17T23:11:37.618794" elapsed="0.000939"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:37.618477" elapsed="0.001337"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:37.621266" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:37.620283" elapsed="0.001135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:37.619999" elapsed="0.001693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:37.618242" elapsed="0.003583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:37.602505" elapsed="0.019550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:37.594716" elapsed="0.027536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:39.624981" level="INFO">@{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-17T23:11:39.624149" 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-17T23:11:39.625748" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:39.625222" elapsed="0.000645"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:39.625175" elapsed="0.000810"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:39.642871" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:39.643308" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:39.643530" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:39.631501" elapsed="0.012118"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:39.644393" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:39.643789" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:39.645840" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:39.645007" elapsed="0.000959"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:39.644602" elapsed="0.001433"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:39.643746" 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-17T23:11:39.646386" 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-17T23:11:39.647396" elapsed="0.000937"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:39.647106" elapsed="0.001398"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:39.650128" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:39.649133" elapsed="0.001148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:39.648708" elapsed="0.001719">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:39.646841" elapsed="0.003709">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:39.630657" elapsed="0.020136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:39.623213" elapsed="0.027821">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:41.654224" level="INFO">@{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-17T23:11:41.653392" 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-17T23:11:41.655033" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:41.654460" elapsed="0.000693"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:41.654413" elapsed="0.000794"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:41.670837" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:41.671146" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:41.671367" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:41.660694" elapsed="0.010728"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:41.672193" elapsed="0.000131"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:41.671614" elapsed="0.000779"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:41.673692" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:41.672859" elapsed="0.000941"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:41.672447" elapsed="0.001423"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:41.671541" elapsed="0.002396"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:41.674247" 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-17T23:11:41.675249" elapsed="0.000942"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:41.674959" elapsed="0.001312"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:41.677753" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:41.676761" elapsed="0.001144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:41.676434" elapsed="0.001644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:41.674704" elapsed="0.003576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:41.659819" elapsed="0.018680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:41.651960" elapsed="0.026777">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:43.681399" level="INFO">@{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-17T23:11:43.680555" 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-17T23:11:43.682187" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:43.681667" elapsed="0.000637"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:43.681618" elapsed="0.000739"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:43.699297" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:43.699756" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:43.699985" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:43.688100" elapsed="0.011940"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:43.700774" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:43.700197" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:43.702155" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:43.701340" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:43.700964" elapsed="0.001366"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:43.700156" 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-17T23:11:43.702709" 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-17T23:11:43.703702" elapsed="0.001408"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:43.703386" elapsed="0.001806"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:43.706665" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:43.705673" elapsed="0.001145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:43.705354" elapsed="0.001634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:43.703156" elapsed="0.003957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:43.687134" elapsed="0.020179">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:43.679660" elapsed="0.027842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:45.710127" level="INFO">@{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-17T23:11:45.709307" 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-17T23:11:45.710941" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:45.710366" elapsed="0.000714"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:45.710320" elapsed="0.000820"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:45.728005" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:45.728318" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:45.728518" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:45.716718" elapsed="0.011885"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:45.729379" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:45.728769" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:45.730815" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:45.730019" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:45.729547" elapsed="0.001466"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:45.728726" elapsed="0.002331"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:45.731357" 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-17T23:11:45.732351" elapsed="0.000937"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:45.732067" elapsed="0.001301"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:45.734809" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:45.733843" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:45.733527" elapsed="0.001600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:45.731810" elapsed="0.003437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:45.715843" elapsed="0.019689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:45.708408" elapsed="0.027358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:47.738176" level="INFO">@{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-17T23:11:47.737379" elapsed="0.000860"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:47.738941" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:47.738404" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:47.738359" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:47.757428" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:47.757754" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:47.757994" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:47.745074" elapsed="0.012975"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:47.758778" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:47.758207" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:47.760156" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:47.759337" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:47.758966" elapsed="0.001362"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:47.758167" elapsed="0.002206"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:47.760736" 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-17T23:11:47.761732" elapsed="0.000941"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:47.761417" elapsed="0.001337"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:47.764188" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:47.763223" elapsed="0.001115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:47.762938" elapsed="0.001622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:47.761184" elapsed="0.003540">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:47.744203" elapsed="0.020746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:47.736511" elapsed="0.028633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:49.767766" level="INFO">@{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-17T23:11:49.766966" elapsed="0.000866"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:49.768521" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:49.768027" elapsed="0.000647"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:49.767979" elapsed="0.000747"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:49.787068" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:49.787349" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:49.787546" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:49.774244" elapsed="0.013388"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:49.788369" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:49.787791" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:49.789752" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:49.788962" elapsed="0.000897"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:49.788535" elapsed="0.001416"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:49.787751" 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-17T23:11:49.790301" 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-17T23:11:49.791301" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:49.791014" elapsed="0.001381"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:49.793863" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:49.792890" elapsed="0.001150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:49.792599" elapsed="0.001589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:49.790756" elapsed="0.003556">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:49.773375" elapsed="0.021139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:49.766048" elapsed="0.028695">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:51.797749" level="INFO">@{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-17T23:11:51.796954" elapsed="0.000859"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:11:51.798498" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:51.798003" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:51.797957" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:51.814609" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:51.814894" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:51.815137" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:51.804211" elapsed="0.010979"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:51.815947" elapsed="0.000125"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:51.815347" elapsed="0.000795"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:51.817371" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:51.816560" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:51.816195" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:51.815307" 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-17T23:11:51.817946" 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-17T23:11:51.818937" elapsed="0.000912"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:51.818628" elapsed="0.001321"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:51.821383" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:51.820396" elapsed="0.001137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:51.820112" elapsed="0.001605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:51.818365" elapsed="0.003479">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:51.803334" elapsed="0.018739">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:51.796067" elapsed="0.026206">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:53.824731" level="INFO">@{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-17T23:11:53.823947" 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-17T23:11:53.825467" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:53.824979" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:53.824932" elapsed="0.000740"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:53.843187" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:53.843548" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:53.843781" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:53.831191" elapsed="0.012643"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:53.844558" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:53.844017" elapsed="0.000690"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:53.845963" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:53.845151" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:53.844758" elapsed="0.001383"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:53.843977" 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-17T23:11:53.846501" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:53.847499" elapsed="0.001429"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:53.847214" elapsed="0.001798"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:53.850450" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:53.849464" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:53.849176" elapsed="0.001606">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:53.846980" elapsed="0.003947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:53.830321" elapsed="0.020813">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:53.823092" elapsed="0.028232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.853825" level="INFO">@{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-17T23:11:55.853035" 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="NOT RUN" start="2026-10-17T23:11:55.854597" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:55.854080" elapsed="0.000636"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:55.854034" elapsed="0.000735"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:55.871177" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:55.871449" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:55.871676" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:55.860244" elapsed="0.011488"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:55.872474" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:55.871889" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:55.873843" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"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-17T23:11:55.873057" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:55.872675" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:55.871848" 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-17T23:11:55.874387" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:11:55.875377" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:11:55.875092" elapsed="0.001291"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:55.877834" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.876861" elapsed="0.001148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.876543" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.874836" elapsed="0.003440">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.859374" elapsed="0.019184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.852173" elapsed="0.026617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-10-17T23:11:55.878998" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:10:24.489280" elapsed="91.389949">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:55.879689" elapsed="0.000049"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:55.881545" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:11:56.201216" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:11:56.201490" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:11:56.201624" 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-17T23:11:56.201718" 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-17T23:11:55.881182" elapsed="0.320584"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:56.202871" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:11:56.202272" elapsed="0.000714"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:56.203731" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:11:56.558755" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:11:56.559039" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:11:56.559131" 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-17T23:11:56.559214" 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-17T23:11:56.203361" elapsed="0.355902"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:56.560124" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:11:56.650221" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:11:56.650462" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:11:56.650553" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:11:56.650678" 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-17T23:11:56.559735" elapsed="0.090995"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:56.651410" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:11:56.718039" 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-17T23:11:56.651191" elapsed="0.066980"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:56.737310" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:56.737413" level="INFO">DELETE Response : url=http://10.30.171.120: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-17T23:11:56.737750" 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-17T23:11:56.718480" elapsed="0.019327"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:56.762774" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01c7yp2asrf2588w94ggp9vq6p0.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:56.763061" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:11:56.763279" 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-17T23:11:56.738163" elapsed="0.025172"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:11:55.880345" elapsed="0.883131"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-10-17T23:10:22.704675" elapsed="94.058924">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDnPVy4VnVKzWntIgp21ea8UjXdqxU2dRcPaHPOxcFiGtKYQ6grKNOM7vPfR4pVDG8rUU2Vv2T4I7refH75gJbiQWzGpa5abaTwTxBMrDOIQiasPmLrkQ7xypkFO+Y6Zvu341fw5DnLcVj8MqOIk5LZk3EqhASo5ldcYxVdJRux+aFDJI+++J0HD6fk1fZLYgdLyEAFhNYQgzJwqI4RO7Y9LPcP4cpWumeJHcO02M0nlk8L6vyacecp/8qme3oveihGzIMFFTGKakTJrxTG/JUG3OE+yZPBduEKZsxwf+DwVFvn1N7ywmZDWbX+IVdSLksRjSeEC0uD/VFQ5HNZ9WFv","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-17T23:11:56.767017" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab4f877990&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-17T23:11:56.766376" elapsed="0.000962"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:56.767982" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:11:56.781670" 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-17T23:11:56.767756" elapsed="0.014035"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:56.782385" 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-17T23:11:57.036488" 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-17T23:11:56.782191" elapsed="0.254476"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:57.037317" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:11:57.086706" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:11:57.086942" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT8...</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-17T23:11:57.037096" elapsed="0.049906"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:11:57.090651" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT8...</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-17T23:11:57.087382" elapsed="0.003368"/>
</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-17T23:11:56.765744" elapsed="0.325130"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:11:57.136428" 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-17T23:11:57.091929" elapsed="0.044631"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:11:57.146213" 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-17T23:11:57.136993" elapsed="0.009344"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-17T23:11:57.091234" elapsed="0.055234"/>
</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-17T23:11:57.148460" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:57.147761" elapsed="0.000839"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:11:57.149861" 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-17T23:11:57.150160" 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-17T23:11:57.149557" elapsed="0.000658"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:11:57.151278" 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-17T23:11:57.150564" elapsed="0.000804"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:57.148966" elapsed="0.002510"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:57.148659" elapsed="0.002867"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:57.147714" elapsed="0.003888"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:11:57.152373" 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-17T23:11:57.151937" elapsed="0.000494"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:11:57.153219" 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-17T23:11:57.152787" elapsed="0.000489"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:11:57.154050" 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-17T23:11:57.153627" elapsed="0.000479"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:11:57.154860" 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-17T23:11:57.154431" elapsed="0.000507"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:57.182310" level="INFO">POST Request : url=http://10.30.171.120: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:11:57.182426" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:11:57 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:57.182652" 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-17T23:11:57.155236" elapsed="0.027471"/>
</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-17T23:11:57.183082" elapsed="0.000802"/>
</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-17T23:11:57.147027" elapsed="0.037008"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:11:57.184789" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-17T23:11:57.521893" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:11:57.522176" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:11:57.522265" 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-17T23:11:57.522348" 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-17T23:11:57.184418" elapsed="0.337977"/>
</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-17T23:11:57.528091" level="INFO">@{expected_values} = [ "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-17T23:11:57.527321" 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-17T23:11:57.528929" elapsed="0.000400"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:57.528388" elapsed="0.001022"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:57.528344" elapsed="0.001121"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:57.545895" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:57.546200" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:57.546413" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:57.534933" elapsed="0.011533"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:57.547224" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:57.546657" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:57.548556" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.547786" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:57.547392" elapsed="0.001374"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:57.546613" elapsed="0.002199"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:57.549135" elapsed="0.000307"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:57.551153" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.550134" elapsed="0.001169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.549823" elapsed="0.001629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.549554" elapsed="0.002064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.534064" elapsed="0.017772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.524146" elapsed="0.027972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.553715" level="INFO">@{expected_values} = [ "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-17T23:11:59.553308" elapsed="0.000441"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:11:59.554089" elapsed="0.000171"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:59.553835" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:59.553813" elapsed="0.000509"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:11:59.567033" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:11:59.567299" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:11:59.567502" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:11:59.556780" elapsed="0.010775"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:11:59.567936" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:11:59.567666" elapsed="0.000325"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:11:59.568525" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.568181" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-10-17T23:11:59.568014" elapsed="0.000607"/>
</branch>
<status status="PASS" start="2026-10-17T23:11:59.567647" elapsed="0.000994"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:11:59.568778" elapsed="0.000158"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:11:59.569689" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.569235" elapsed="0.000528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.569100" elapsed="0.000733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.568990" elapsed="0.001116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.556400" elapsed="0.013858">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:59.552836" elapsed="0.017513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.572978" level="INFO">@{expected_values} = [ "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-17T23:12:01.572090" elapsed="0.000957"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:01.573755" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:01.573222" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:01.573174" elapsed="0.001106"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:01.591665" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:01.591981" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:01.592182" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:01.579774" elapsed="0.012463"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:01.592995" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:01.592397" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:01.594347" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.593530" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:01.593167" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:01.592354" 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-17T23:12:01.594922" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:01.596927" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.595922" elapsed="0.001157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.595612" elapsed="0.001616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.595348" elapsed="0.002088">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.578929" elapsed="0.018750">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:01.571179" elapsed="0.026702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.600611" level="INFO">@{expected_values} = [ "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-17T23:12:03.599759" 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-17T23:12:03.601381" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:03.600862" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:03.600814" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:03.619663" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:03.619984" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:03.620207" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:03.607870" elapsed="0.012392"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:03.621032" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:03.620426" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:03.622414" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.621622" elapsed="0.000899"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:03.621205" elapsed="0.001419"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:03.620384" 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-17T23:12:03.622999" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:03.625011" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.624004" elapsed="0.001247">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.623690" elapsed="0.001715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.623425" elapsed="0.002104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.607009" elapsed="0.018757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:03.598764" elapsed="0.027221">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.628741" level="INFO">@{expected_values} = [ "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-17T23:12:05.627933" 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="PASS" start="2026-10-17T23:12:05.629507" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:05.629006" elapsed="0.000996"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:05.628956" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:05.648555" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:05.648972" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:05.649208" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:05.635747" elapsed="0.013531"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:05.650216" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:05.649480" elapsed="0.000882"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:05.652233" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.651104" elapsed="0.001394"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:05.650432" elapsed="0.002195"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:05.649429" elapsed="0.003254"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:05.653050" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:05.655189" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.654091" elapsed="0.001259">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.653773" elapsed="0.001741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.653496" elapsed="0.002241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.634832" elapsed="0.021213">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:05.626956" elapsed="0.029342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.659531" level="INFO">@{expected_values} = [ "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-17T23:12:07.658189" elapsed="0.001439"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:07.660345" elapsed="0.000436"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:07.659809" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:07.659762" elapsed="0.001180"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:07.677470" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:07.677800" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:07.678127" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:07.666439" elapsed="0.011744"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:07.678942" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:07.678342" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:07.680300" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.679485" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:07.679116" elapsed="0.001359"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:07.678302" 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-17T23:12:07.680860" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:07.682869" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.681856" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.681536" elapsed="0.001657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.681301" elapsed="0.002014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.665600" elapsed="0.017916">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:07.657271" elapsed="0.026474">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.686454" level="INFO">@{expected_values} = [ "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-17T23:12:09.685650" 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-17T23:12:09.687268" elapsed="0.000401"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:09.686734" elapsed="0.001015"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:09.686687" elapsed="0.001115"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:09.704306" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:09.704646" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:09.704846" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:09.693309" elapsed="0.011618"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:09.705679" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:09.705090" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:09.707042" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.706233" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:09.705845" elapsed="0.001371"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:09.705050" 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-17T23:12:09.707599" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:09.709666" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.708637" elapsed="0.001182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.708310" elapsed="0.001682">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.708073" elapsed="0.002045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.692441" elapsed="0.017881">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:09.684727" elapsed="0.025785">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.714365" level="INFO">@{expected_values} = [ "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-17T23:12:11.713477" 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-17T23:12:11.715212" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:11.714665" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:11.714613" elapsed="0.001143"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:11.732678" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:11.733068" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:11.733291" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:11.721365" elapsed="0.011980"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:11.734124" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:11.733505" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:11.735510" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.734716" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:11.734292" elapsed="0.001421"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:11.733465" 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-17T23:12:11.736075" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:11.738144" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.737108" elapsed="0.001209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.736793" elapsed="0.001679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.736512" elapsed="0.002117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.720501" elapsed="0.018342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:11.712441" elapsed="0.026744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.742341" level="INFO">@{expected_values} = [ "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-17T23:12:13.741445" 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-17T23:12:13.743236" elapsed="0.000417"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:13.742646" elapsed="0.001088"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:13.742562" elapsed="0.001227"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:13.759949" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:13.760316" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:13.760514" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:13.749390" elapsed="0.011205"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:13.761552" elapsed="0.000174"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:13.760756" elapsed="0.001039"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:13.763212" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.762386" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:13.761949" elapsed="0.001434"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:13.760715" elapsed="0.002711"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:13.763757" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:13.766367" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.764792" elapsed="0.001749">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.764468" elapsed="0.002263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.764219" elapsed="0.002643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.748531" elapsed="0.018677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:13.740368" elapsed="0.027035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.770539" level="INFO">@{expected_values} = [ "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-17T23:12:15.769674" 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-17T23:12:15.771392" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:15.770838" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:15.770787" elapsed="0.001161"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:15.787831" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:15.788197" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:15.788396" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:15.777557" elapsed="0.010892"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:15.789229" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:15.788642" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:15.790629" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.789805" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:15.789398" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:15.788599" 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-17T23:12:15.791174" elapsed="0.000320"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:15.793251" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.792208" elapsed="0.001217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.791912" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.791640" elapsed="0.002231">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.776715" elapsed="0.017400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:15.768612" elapsed="0.025700">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.797398" level="INFO">@{expected_values} = [ "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-17T23:12:17.796502" 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-17T23:12:17.798249" elapsed="0.000403"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:17.797700" elapsed="0.001030"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:17.797648" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:17.815480" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:17.815929" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:17.816173" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:17.805003" elapsed="0.011230"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:17.817094" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:17.816404" elapsed="0.000816"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:17.818624" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.817712" elapsed="0.001029"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:17.817275" elapsed="0.001539"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:17.816361" elapsed="0.002500"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:17.819213" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:17.821450" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.820315" elapsed="0.001477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.820002" elapsed="0.001971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.819711" elapsed="0.002395">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.804125" elapsed="0.018194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:17.795424" elapsed="0.027089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.825768" level="INFO">@{expected_values} = [ "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-17T23:12:19.824832" elapsed="0.001019"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:19.826636" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:19.826072" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:19.826020" elapsed="0.001161"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:19.845385" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:19.845765" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:19.845988" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:19.832890" elapsed="0.013154"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:19.846796" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:19.846203" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:19.848177" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.847358" elapsed="0.001046"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:19.846993" elapsed="0.001483"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:19.846162" 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-17T23:12:19.848862" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:19.850965" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.849890" elapsed="0.001240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.849598" elapsed="0.001688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.849323" elapsed="0.002097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.832008" elapsed="0.019654">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:19.823741" elapsed="0.028122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.855758" level="INFO">@{expected_values} = [ "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-17T23:12:21.854165" elapsed="0.001668"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:21.856626" elapsed="0.000409"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:21.856058" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:21.856006" elapsed="0.001169"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:21.873967" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:21.874303" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:21.874717" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:21.863090" elapsed="0.011685"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:21.875534" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:21.874964" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:21.876961" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.876133" elapsed="0.000938"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:21.875742" elapsed="0.001400"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:21.874921" 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-17T23:12:21.877492" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:21.879610" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.878534" elapsed="0.001244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.878239" elapsed="0.001718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.877990" elapsed="0.002097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.862198" elapsed="0.018099">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:21.853073" elapsed="0.027423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.883737" level="INFO">@{expected_values} = [ "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-17T23:12:23.882826" 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-17T23:12:23.884599" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:23.884035" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:23.883983" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:23.903696" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:23.904055" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:23.904259" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:23.890934" elapsed="0.013380"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:23.905152" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:23.904478" elapsed="0.000790"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:23.906609" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.905724" elapsed="0.000997"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:23.905319" elapsed="0.001473"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:23.904434" elapsed="0.002404"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:23.907172" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:23.909272" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.908214" elapsed="0.001226">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.907891" elapsed="0.001734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.907643" elapsed="0.002112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.889994" elapsed="0.019991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:23.881738" elapsed="0.028444">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.913878" level="INFO">@{expected_values} = [ "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-17T23:12:25.913015" 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-17T23:12:25.914703" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:25.914156" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:25.914109" elapsed="0.001122"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:25.934026" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:25.934341" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:25.934556" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:25.920814" elapsed="0.013839"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:25.935382" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:25.934812" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:25.936845" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.936049" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:25.935546" elapsed="0.001663"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:25.934771" 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-17T23:12:25.937552" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:25.939606" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.938551" elapsed="0.001219">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.938265" elapsed="0.001672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.938025" elapsed="0.002039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.919975" elapsed="0.020295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:25.912005" elapsed="0.028608">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.943796" level="INFO">@{expected_values} = [ "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-17T23:12:27.942853" 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-17T23:12:27.944658" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:27.944092" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:27.944040" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:27.962201" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:27.962604" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:27.962809" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:27.950961" elapsed="0.011901"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:27.963646" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:27.963045" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:27.965052" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.964216" elapsed="0.000942"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:27.963816" elapsed="0.001411"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:27.963003" elapsed="0.002268"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:27.965605" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:27.968241" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.966656" elapsed="0.001765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.966334" elapsed="0.002278">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.966076" elapsed="0.002674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.950085" elapsed="0.019020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:27.941770" elapsed="0.027535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.972223" level="INFO">@{expected_values} = [ "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-17T23:12:29.971322" elapsed="0.000975"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:29.973119" elapsed="0.000379"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:29.972488" elapsed="0.001124"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:29.972435" elapsed="0.001239"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:29.990773" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:29.991127" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:29.991330" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:29.979293" elapsed="0.012092"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:29.992158" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:29.991544" elapsed="0.000731"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:29.993531" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.992725" elapsed="0.000946"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:29.992328" elapsed="0.001411"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:29.991504" 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-17T23:12:29.994117" elapsed="0.000323"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:29.996184" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.995151" elapsed="0.001197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.994840" elapsed="0.001658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.994557" elapsed="0.002195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.978423" elapsed="0.018603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:29.970316" elapsed="0.026910">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:32.000298" level="INFO">@{expected_values} = [ "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-17T23:12:31.999393" elapsed="0.000977"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:32.001148" elapsed="0.000387"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:32.000557" elapsed="0.001094"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:32.000509" elapsed="0.001202"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:32.020292" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:32.020653" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:32.020913" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:32.008292" elapsed="0.012684"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:32.021766" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:32.021147" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:32.023273" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:32.022401" elapsed="0.000984"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:32.021970" elapsed="0.001489"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:32.021104" 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-17T23:12:32.023879" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:32.026077" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:32.024988" elapsed="0.001359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:32.024648" elapsed="0.001868">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:32.024359" elapsed="0.002326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:32.007285" elapsed="0.019648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:31.998284" elapsed="0.028864">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.029888" level="INFO">@{expected_values} = [ "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-17T23:12:34.029062" 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-17T23:12:34.030682" elapsed="0.000390"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:34.030156" elapsed="0.000994"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:34.030107" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:34.047626" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:34.047959" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:34.048159" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:34.036756" elapsed="0.011457"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:34.048997" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:34.048371" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:34.050356" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.049534" elapsed="0.001016"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:34.049164" elapsed="0.001491"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:34.048331" elapsed="0.002371"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:34.051030" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:34.053078" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.052053" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.051742" elapsed="0.001650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.051465" elapsed="0.002053">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.035910" elapsed="0.017849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:34.028109" elapsed="0.025888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.057295" level="INFO">@{expected_values} = [ "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-17T23:12:36.055960" elapsed="0.001403"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:36.058084" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:36.057537" elapsed="0.000987"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:36.057492" elapsed="0.001116"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:36.074127" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:36.074464" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:36.074824" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:36.064282" elapsed="0.010597"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:36.075630" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:36.075064" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:36.076977" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.076177" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:36.075799" elapsed="0.001353"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:36.075024" elapsed="0.002172"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:36.077496" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:36.079498" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.078497" elapsed="0.001199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.078210" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.077972" elapsed="0.002026">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.063425" elapsed="0.016782">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:36.055014" elapsed="0.025417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.083068" level="INFO">@{expected_values} = [ "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-17T23:12:38.082224" 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="PASS" start="2026-10-17T23:12:38.083836" elapsed="0.000373"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:38.083304" elapsed="0.000982"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:38.083259" elapsed="0.001080"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:38.100800" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:38.101122" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:38.101320" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:38.089907" elapsed="0.011466"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:38.102166" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:38.101529" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:38.103503" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.102733" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:38.102330" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:38.101490" 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-17T23:12:38.104074" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:38.106205" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.105125" elapsed="0.001236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.104763" elapsed="0.001748">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.104496" elapsed="0.002172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.089058" elapsed="0.017817">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:38.081302" elapsed="0.025789">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.112720" level="INFO">@{expected_values} = [ "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-17T23:12:40.111879" 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-17T23:12:40.113491" elapsed="0.000417"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:40.112992" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:40.112943" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:40.132553" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:40.132921" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:40.133142" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:40.119665" elapsed="0.013532"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:40.133967" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:40.133357" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:40.135340" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.134497" elapsed="0.000968"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:40.134137" elapsed="0.001400"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:40.133316" 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-17T23:12:40.135991" elapsed="0.000326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:40.138036" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.137015" elapsed="0.001181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.136701" elapsed="0.001646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.136432" elapsed="0.002040">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.118798" elapsed="0.019915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:40.110980" elapsed="0.028065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.141828" level="INFO">@{expected_values} = [ "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-17T23:12:42.140996" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:42.142637" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:42.142105" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:42.142056" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:42.159250" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:42.159561" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:42.159794" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:42.148775" elapsed="0.011072"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:42.160609" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:42.160032" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:42.161988" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.161171" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:42.160781" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:42.159991" elapsed="0.002221"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:42.162517" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:42.165074" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.163542" elapsed="0.001694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.163253" elapsed="0.002136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.163008" elapsed="0.002506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.147869" elapsed="0.017978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:42.140042" elapsed="0.026031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.168814" level="INFO">@{expected_values} = [ "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-17T23:12:44.167988" elapsed="0.000896"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:44.169635" elapsed="0.000546"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:44.169094" elapsed="0.001184"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:44.169044" elapsed="0.001294"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:44.188262" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:44.188609" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:44.188824" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:44.176143" elapsed="0.012737"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:44.189727" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:44.189085" elapsed="0.000762"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:44.191165" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.190299" elapsed="0.000972"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:44.189926" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:44.189038" 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-17T23:12:44.191729" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:44.193820" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.192773" elapsed="0.001228">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.192438" elapsed="0.001717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.192192" elapsed="0.002189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.175182" elapsed="0.019458">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:44.167040" elapsed="0.027804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.198601" level="INFO">@{expected_values} = [ "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-17T23:12:46.197439" 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-17T23:12:46.199656" elapsed="0.000529"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:46.198945" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:46.198857" elapsed="0.001514"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:46.218639" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:46.218965" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:46.219185" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:46.208642" elapsed="0.010596"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:46.219997" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:46.219398" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:46.221332" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.220534" elapsed="0.000900"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:46.220165" elapsed="0.001335"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:46.219358" 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-17T23:12:46.221879" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:46.223908" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.222906" elapsed="0.001257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.222563" elapsed="0.001755">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.222324" elapsed="0.002118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.207664" elapsed="0.017016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:46.196053" elapsed="0.028822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.227746" level="INFO">@{expected_values} = [ "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-17T23:12:48.226840" 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-17T23:12:48.228608" elapsed="0.000601"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:48.228034" elapsed="0.001258"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:48.227981" elapsed="0.001373"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:48.245436" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:48.245804" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:48.246042" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:48.235607" elapsed="0.010494"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:48.246914" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:48.246271" elapsed="0.000770"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:48.248403" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.247493" elapsed="0.001152"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:48.247097" elapsed="0.001627"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:48.246228" elapsed="0.002547"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:48.249132" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:48.251322" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.250222" elapsed="0.001268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.249907" elapsed="0.001783">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.249626" elapsed="0.002205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.234659" elapsed="0.017420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:48.225823" elapsed="0.026469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.255644" level="INFO">@{expected_values} = [ "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-17T23:12:50.254228" elapsed="0.001486"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:50.256420" elapsed="0.000401"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:50.255912" elapsed="0.001010"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:50.255847" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:50.274965" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:50.275251" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:50.275564" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:50.262508" elapsed="0.013146"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:50.276402" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:50.275816" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:50.277794" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.276998" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:50.276603" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:50.275776" 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-17T23:12:50.278343" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:50.280357" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.279340" elapsed="0.001169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.279052" elapsed="0.001639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.278797" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.261661" elapsed="0.019381">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:50.253268" elapsed="0.027968">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.283484" level="INFO">@{expected_values} = [ "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-17T23:12:52.282730" elapsed="0.000815"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:52.284247" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:52.283733" elapsed="0.000978"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:52.283690" elapsed="0.001075"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:52.302307" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:52.302612" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:52.302817" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:52.290255" elapsed="0.012616"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:52.303628" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:52.303053" elapsed="0.000691"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:52.305011" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.304186" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:52.303794" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:52.303013" 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-17T23:12:52.305536" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:52.307537" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.306534" elapsed="0.001188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.306246" elapsed="0.001626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.306012" elapsed="0.002006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.289386" elapsed="0.018834">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:52.281950" elapsed="0.026462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.311166" level="INFO">@{expected_values} = [ "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-17T23:12:54.310386" elapsed="0.000841"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:54.311914" elapsed="0.000352"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:54.311381" elapsed="0.000964"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:54.311340" elapsed="0.001056"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:54.328253" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:54.328508" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:54.328771" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:54.317877" elapsed="0.010949"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:54.329543" elapsed="0.000085"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:54.329007" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:54.330959" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.330150" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:54.329745" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:54.328965" elapsed="0.002212"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:54.331479" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:54.333455" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.332466" elapsed="0.001169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.332179" elapsed="0.001603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.331949" elapsed="0.001978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.317031" elapsed="0.017103">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:54.309621" elapsed="0.024800">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.336679" level="INFO">@{expected_values} = [ "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-17T23:12:56.335920" elapsed="0.000822"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:56.337417" elapsed="0.000389"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:56.336945" elapsed="0.000960"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:56.336902" elapsed="0.001057"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:56.353822" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:56.354123" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:56.354319" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:56.343390" elapsed="0.010981"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:56.355119" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:56.354527" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:56.356466" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.355686" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:56.355284" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:56.354487" elapsed="0.002231"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:12:56.357041" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:56.359422" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.358019" elapsed="0.001575">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.357714" elapsed="0.002032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.357454" elapsed="0.002416">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.342533" elapsed="0.017666">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:56.335111" elapsed="0.025285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.362615" level="INFO">@{expected_values} = [ "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-17T23:12:58.361845" elapsed="0.000833"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:12:58.363331" elapsed="0.000383"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:58.362834" elapsed="0.000961"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:58.362792" elapsed="0.001057"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:12:58.380339" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:12:58.380638" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:12:58.380839" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:12:58.369317" elapsed="0.011605"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:12:58.381654" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:12:58.381084" elapsed="0.000686"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:12:58.383020" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.382207" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-17T23:12:58.381822" elapsed="0.001374"/>
</branch>
<status status="PASS" start="2026-10-17T23:12:58.381042" 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-17T23:12:58.383544" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:12:58.385619" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.384527" elapsed="0.001238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.384241" elapsed="0.001691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.384012" elapsed="0.002122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.368450" elapsed="0.017892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:12:58.361063" elapsed="0.025473">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.389336" level="INFO">@{expected_values} = [ "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-17T23:13:00.388463" elapsed="0.000942"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:13:00.390137" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:00.389612" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:00.389535" elapsed="0.001138"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:00.408670" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:00.408988" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:00.409214" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:00.396906" elapsed="0.012365"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:00.410039" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:00.409431" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:00.411405" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.410606" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:00.410213" elapsed="0.001405"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:00.409390" 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-17T23:13:00.411995" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:00.414021" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.413005" elapsed="0.001257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.412688" elapsed="0.001726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.412418" elapsed="0.002123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.396012" elapsed="0.018772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:00.387458" elapsed="0.027546">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.417707" level="INFO">@{expected_values} = [ "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-17T23:13:02.416871" 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-17T23:13:02.418491" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:02.417975" elapsed="0.001010"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:02.417928" elapsed="0.001112"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:02.435693" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:02.436009" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:02.436211" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:02.424539" elapsed="0.011728"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:02.437081" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:02.436434" elapsed="0.000783"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:02.438516" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.437688" elapsed="0.001048"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:02.437277" elapsed="0.001532"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:02.436386" elapsed="0.002469"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:02.439183" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:02.441207" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.440196" elapsed="0.001162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.439906" elapsed="0.001602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.439642" elapsed="0.002033">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.423693" elapsed="0.018212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:02.415957" elapsed="0.026151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.444278" level="INFO">@{expected_values} = [ "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-17T23:13:04.443378" elapsed="0.000943"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:13:04.444768" elapsed="0.000239"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:04.444435" elapsed="0.000620"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:04.444404" elapsed="0.000686"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:04.459206" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:04.459402" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:04.459615" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:04.448390" elapsed="0.011259"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:04.460086" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:04.459748" elapsed="0.000409"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:04.460896" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.460424" elapsed="0.000540"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:04.460188" elapsed="0.000815"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:04.459723" elapsed="0.001306"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:04.461215" elapsed="0.000186"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:04.462398" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.461805" elapsed="0.000685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.461626" elapsed="0.000972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.461467" elapsed="0.001210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.447908" elapsed="0.014890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:04.442784" elapsed="0.020147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.465423" level="INFO">@{expected_values} = [ "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-17T23:13:06.464622" 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="PASS" start="2026-10-17T23:13:06.466232" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:06.465694" elapsed="0.001011"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:06.465648" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:06.484188" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:06.484508" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:06.484781" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:06.472426" elapsed="0.012414"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:06.485739" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:06.485065" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:06.487212" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.486319" elapsed="0.001017"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:06.485939" elapsed="0.001502"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:06.485014" elapsed="0.002502"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:06.487911" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:06.490030" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.488961" elapsed="0.001223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.488617" elapsed="0.001715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.488346" elapsed="0.002111">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.471437" elapsed="0.019260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:06.463715" elapsed="0.027198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.495323" level="INFO">@{expected_values} = [ "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-17T23:13:08.494234" elapsed="0.001175"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:13:08.496371" elapsed="0.000457"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:08.495677" elapsed="0.001262"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:08.495609" elapsed="0.001385"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:08.514112" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:08.514399" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:08.514651" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:08.502605" elapsed="0.012103"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:08.515438" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:08.514868" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:08.516911" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.516043" elapsed="0.000978"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:08.515641" elapsed="0.001450"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:08.514827" elapsed="0.002309"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:08.517439" elapsed="0.000344"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:08.519455" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.518439" elapsed="0.001203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.518153" elapsed="0.001637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.517914" elapsed="0.002023">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.501731" elapsed="0.018412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:08.493071" elapsed="0.027356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.523139" level="INFO">@{expected_values} = [ "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-17T23:13:10.522306" 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-17T23:13:10.523934" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:10.523376" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:10.523331" elapsed="0.001104"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:10.541753" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:10.542080" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:10.542277" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:10.530066" elapsed="0.012265"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:10.543111" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:10.542490" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:10.544475" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.543679" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:10.543278" elapsed="0.001406"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:10.542450" 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-17T23:13:10.545054" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:10.547471" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.546047" elapsed="0.001609">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.545740" elapsed="0.002066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.545475" elapsed="0.002476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.529180" elapsed="0.019056">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:10.521334" elapsed="0.027101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.551242" level="INFO">@{expected_values} = [ "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-17T23:13:12.550316" elapsed="0.000994"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:13:12.552078" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:12.551490" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:12.551442" elapsed="0.001171"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:12.568210" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:12.568493" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:12.568760" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:12.558157" elapsed="0.010661"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:12.569555" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:12.569008" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:12.570971" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.570154" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:12.569760" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:12.568966" 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-17T23:13:12.571509" elapsed="0.000409"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:12.573841" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.572739" elapsed="0.001281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.572339" elapsed="0.001829">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.572060" elapsed="0.002317">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.557282" elapsed="0.017354">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:12.549309" elapsed="0.025544">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.577600" level="INFO">@{expected_values} = [ "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-17T23:13:14.576737" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:13:14.578388" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:14.577844" elapsed="0.001022"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:14.577798" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:14.596150" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:14.596431" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:14.596681" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:14.584872" elapsed="0.011864"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:14.597462" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:14.596921" elapsed="0.000689"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:14.598831" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.598044" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:14.597663" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:14.596856" 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-17T23:13:14.599376" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:14.601375" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.600368" elapsed="0.001326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.600080" elapsed="0.001773">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.599828" elapsed="0.002183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.584015" elapsed="0.018208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:14.575798" elapsed="0.026622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.605003" level="INFO">@{expected_values} = [ "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-17T23:13:16.604158" 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-17T23:13:16.605772" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:16.605239" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:16.605193" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:16.622384" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:16.622728" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:16.622948" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:16.611811" elapsed="0.011193"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:16.623752" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:16.623162" elapsed="0.000705"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:16.625136" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.624325" elapsed="0.001023"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:16.623945" elapsed="0.001474"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:16.623122" elapsed="0.002341"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:16.625795" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:16.627793" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.626793" elapsed="0.001173">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.626479" elapsed="0.001639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.626240" elapsed="0.002002">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.610952" elapsed="0.017493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:16.603256" elapsed="0.025415">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.632019" level="INFO">@{expected_values} = [ "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-17T23:13:18.630615" elapsed="0.001476"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:13:18.632835" elapsed="0.000413"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:18.632273" elapsed="0.001061"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:18.632225" elapsed="0.001167"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:18.649928" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:18.650211" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:18.650508" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:18.639398" elapsed="0.011166"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:18.651324" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:18.650758" elapsed="0.000683"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:18.652705" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.651913" elapsed="0.000899"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:18.651493" elapsed="0.001407"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:18.650716" elapsed="0.002231"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:18.653252" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:18.655265" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.654253" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.653965" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.653705" elapsed="0.002022">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.638466" elapsed="0.017482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:18.629660" elapsed="0.026480">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.658756" level="INFO">@{expected_values} = [ "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-17T23:13:20.657951" 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-17T23:13:20.659538" elapsed="0.000417"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:20.659020" elapsed="0.001013"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:20.658974" elapsed="0.001112"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:20.676650" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:20.676964" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:20.677169" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:20.665669" elapsed="0.011555"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:20.678003" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:20.677383" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:20.679376" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.678559" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:20.678186" elapsed="0.001367"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:20.677343" 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-17T23:13:20.679959" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:20.681962" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.680959" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.680650" elapsed="0.001618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.680382" elapsed="0.002010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.664802" elapsed="0.017825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:20.657034" elapsed="0.025804">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.688048" level="INFO">@{expected_values} = [ "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-17T23:13:22.687216" 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-17T23:13:22.688811" elapsed="0.000387"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:22.688288" elapsed="0.000990"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:22.688241" elapsed="0.001091"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:22.705952" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:22.706244" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:22.706462" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:22.694828" elapsed="0.011689"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:22.707283" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:22.706710" elapsed="0.000690"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:22.708647" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.707843" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:22.707451" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:22.706669" elapsed="0.002199"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:22.709209" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:22.711205" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.710204" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.709917" elapsed="0.001590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.709657" elapsed="0.002011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.693965" elapsed="0.017933">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:22.686325" elapsed="0.025865">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.715164" level="INFO">@{expected_values} = [ "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-17T23:13:24.714295" 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-17T23:13:24.715958" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:24.715403" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:24.715359" elapsed="0.001098"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:24.734618" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:24.734933" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:24.735132" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:24.722008" elapsed="0.013178"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:24.735946" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:24.735347" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:24.737291" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.736481" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:24.736118" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:24.735305" 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-17T23:13:24.737849" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:24.740341" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.738849" elapsed="0.001645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.738533" elapsed="0.002142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.738299" elapsed="0.002506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.721135" elapsed="0.020005">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:24.713358" elapsed="0.027984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.744113" level="INFO">@{expected_values} = [ "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-17T23:13:26.743277" 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-17T23:13:26.744908" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:26.744357" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:26.744310" elapsed="0.001094"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:26.762064" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:26.762349" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:26.762547" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:26.750901" elapsed="0.011735"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:26.763380" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:26.762798" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:26.764780" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.763985" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:26.763552" elapsed="0.001426"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:26.762757" elapsed="0.002268"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:26.765332" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:26.767344" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.766333" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.766044" elapsed="0.001643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.765784" elapsed="0.002152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.750039" elapsed="0.018110">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:26.742344" elapsed="0.026005">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.770989" level="INFO">@{expected_values} = [ "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-17T23:13:28.770162" 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-17T23:13:28.771763" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:28.771231" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:28.771185" elapsed="0.001099"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:28.790167" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:28.790448" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:28.790763" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:28.778223" elapsed="0.012597"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:28.791555" elapsed="0.000087"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:28.791005" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:28.793070" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.792151" elapsed="0.001028"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:28.791759" elapsed="0.001489"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:28.790963" 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-17T23:13:28.793633" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:28.795661" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.794646" elapsed="0.001280">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.794326" elapsed="0.001752">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.794090" elapsed="0.002114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.777345" elapsed="0.019069">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.769247" elapsed="0.027396">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-10-17T23:13:28.796829" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:11:57.522879" elapsed="91.274205">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:28.797509" elapsed="0.000046"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:28.799363" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:13:29.088911" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:13:29.089252" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:13:29.089344" 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-17T23:13:29.089430" 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-17T23:13:28.799015" elapsed="0.290464"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:29.090728" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:29.090098" elapsed="0.000721"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.091628" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:13:29.445451" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:13:29.445909" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:13:29.446007" 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-17T23:13:29.446193" 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-17T23:13:29.091256" elapsed="0.354992"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.447303" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:13:29.524110" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:13:29.524383" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:13:29.524471" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:13:29.524551" 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-17T23:13:29.446798" elapsed="0.077869"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.525411" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:13:29.573857" 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-17T23:13:29.525174" elapsed="0.048833"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:29.594488" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:29.594636" level="INFO">DELETE Response : url=http://10.30.171.120: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-17T23:13:29.594841" 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-17T23:13:29.574316" elapsed="0.020610"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:29.605200" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01aua24xkx58y918tbpa2h0jmn91.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:29.605478" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:13:29.605759" 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-17T23:13:29.595328" elapsed="0.010490"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:13:28.798196" elapsed="0.807792"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-10-17T23:11:56.764410" elapsed="92.841679">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCwor/sQJU1nhLQQwKVK0nIa98oSjvrt7iiZylySMsP4YMXm7aJWqrQpUulaY+H1ghTRemEsNdmOGzO2VJggHHZtDA4DdbkWks8dIg9GVPwhYq9NcecNhk1x9XwbLiQNBGoTa0EroNQnrtRhYRYaxC+uv3yOXhMWtfo4kUCaIT87KKHoVgn8ILR3lajPJT00Qf1NlGvPDjq36NO76pq3nWCfkdyxKyteWcNK3j1PftlQW7lLqM9nFzrdGNtW/95Mes2rLcpVQF/OHxVmJh9hpF9ObQQBopiD1fxhSmdI+vg3MXdw2WuCjmjc6Gvoe3DqCF548ZAgOH6Fcdht9eboqLL","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-17T23:13:29.610357" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab4f8a5590&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-17T23:13:29.609911" elapsed="0.000785"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.611378" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:13:29.624690" 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-17T23:13:29.611166" elapsed="0.013648"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.625417" 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-17T23:13:29.785140" 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-17T23:13:29.625220" elapsed="0.160094"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.786089" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:13:29.870409" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:13:29.870830" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5f...</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-17T23:13:29.785808" elapsed="0.085101"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:13:29.875695" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5f...</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-17T23:13:29.871530" elapsed="0.004283"/>
</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-17T23:13:29.609097" elapsed="0.266887"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.917338" 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-17T23:13:29.877107" elapsed="0.040510"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.928553" 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-17T23:13:29.918224" elapsed="0.010490"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-17T23:13:29.876386" elapsed="0.052480"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:13:29.930467" 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-17T23:13:29.930855" 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-17T23:13:29.930172" elapsed="0.000756"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:13:29.931766" 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-17T23:13:29.931292" elapsed="0.000529"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:13:29.932624" 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-17T23:13:29.932184" elapsed="0.000501"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:29.961752" level="INFO">PUT Request : url=http://10.30.171.120: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-17T23:13:29.961865" level="INFO">PUT Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:13:29 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:29.962148" 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-17T23:13:29.933054" elapsed="0.029149"/>
</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-17T23:13:29.962649" elapsed="0.000995"/>
</kw>
<arg>root</arg>
<arg>root</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-10-17T23:13:29.929334" elapsed="0.034441"/>
</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-17T23:13:29.966687" 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-17T23:13:29.967004" 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-17T23:13:29.966392" elapsed="0.000668"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:13:29.968166" 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-17T23:13:29.967416" elapsed="0.000837"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:29.965774" elapsed="0.002590"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:29.965159" elapsed="0.003253"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-17T23:13:29.968850" elapsed="0.000095"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:29.968470" elapsed="0.000635"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:29.965086" elapsed="0.004072"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:13:29.969961" 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-17T23:13:29.969474" elapsed="0.000546"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:13:29.970804" 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-17T23:13:29.970350" elapsed="0.000517"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:13:29.971644" 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-17T23:13:29.971215" elapsed="0.000485"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:13:29.972442" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug6...</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-17T23:13:29.972043" elapsed="0.000454"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:29.991371" level="INFO">POST Request : url=http://10.30.171.120: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=node01854k8up05fntzjfxk54xsxrh2.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:13:29.991488" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:29.991727" 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-17T23:13:29.972827" elapsed="0.018956"/>
</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-17T23:13:29.992188" elapsed="0.000889"/>
</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-17T23:13:29.964321" elapsed="0.028889"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:13:29.994030" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-17T23:13:30.310731" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:13:30.311106" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:13:30.311196" 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-17T23:13:30.311305" 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-17T23:13:29.993637" elapsed="0.317727"/>
</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-17T23:13:30.315049" level="INFO">@{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-17T23:13:30.314276" 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="NOT RUN" start="2026-10-17T23:13:30.315829" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:30.315284" elapsed="0.000684"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:30.315229" elapsed="0.000798"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:30.333142" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:30.333460" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:30.333715" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:30.322286" elapsed="0.011613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:30.334660" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:30.334067" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:30.336042" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:30.335222" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:30.334830" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:30.334025" 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-17T23:13:30.336564" elapsed="0.000375"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:13:30.337637" elapsed="0.000917"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:30.337317" elapsed="0.001350"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:30.340137" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:30.339142" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:30.338834" elapsed="0.001619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:30.337060" elapsed="0.003547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:30.321398" elapsed="0.019425">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:30.313447" elapsed="0.027597">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:32.343959" level="INFO">@{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-17T23:13:32.343060" elapsed="0.000968"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:32.344836" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:32.344259" elapsed="0.000722"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:32.344200" elapsed="0.000838"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:32.361476" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:32.361980" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:32.362196" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:32.350767" elapsed="0.011485"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:32.363073" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:32.362424" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:32.364444" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:32.363637" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:32.363243" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:32.362380" 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-17T23:13:32.365037" 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-17T23:13:32.366061" elapsed="0.001041"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:32.365745" elapsed="0.001440"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:32.368653" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:32.367665" elapsed="0.001147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:32.367347" elapsed="0.001640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:32.365469" elapsed="0.003642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:32.349831" elapsed="0.019495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:32.342085" elapsed="0.027437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:34.373659" level="INFO">@{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-17T23:13:34.372793" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:34.374609" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:34.374065" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:34.374016" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:34.391191" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:34.391483" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:34.391734" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:34.380496" elapsed="0.011291"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:34.392508" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:34.391964" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:34.393928" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:34.393108" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:34.392711" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:34.391924" elapsed="0.002222"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:34.394448" 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-17T23:13:34.395459" elapsed="0.000942"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:34.395172" elapsed="0.001308"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:34.398024" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:34.396980" elapsed="0.001200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:34.396676" elapsed="0.001651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:34.394930" elapsed="0.003518">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:34.379603" elapsed="0.019091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:34.371763" elapsed="0.027260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:36.402496" level="INFO">@{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-17T23:13:36.401429" elapsed="0.001130"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:13:36.403350" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:36.402769" elapsed="0.000719"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:36.402721" elapsed="0.000881"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:36.420903" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:36.421253" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:36.421488" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:36.410036" elapsed="0.011527"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:36.422459" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:36.421793" elapsed="0.000823"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:36.424121" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:36.423156" elapsed="0.001072"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:36.422670" elapsed="0.001653"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:36.421738" elapsed="0.002642"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:36.424784" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:13:36.425961" elapsed="0.001748"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:36.425558" elapsed="0.002246"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:36.429496" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:36.428353" elapsed="0.001398">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:36.428026" elapsed="0.001947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:36.425270" elapsed="0.004837">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:36.409079" elapsed="0.021340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:36.400355" elapsed="0.030369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:38.433220" level="INFO">@{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-17T23:13:38.432401" 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-17T23:13:38.434000" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:38.433453" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:38.433409" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:38.449695" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:38.449993" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:38.450190" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:38.439661" elapsed="0.010583"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:38.451005" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:38.450405" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:38.452338" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:38.451532" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:38.451173" elapsed="0.001337"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:38.450364" 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-17T23:13:38.452908" 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-17T23:13:38.453894" elapsed="0.000918"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:38.453557" elapsed="0.001353"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:38.456330" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:38.455355" elapsed="0.001121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:38.455072" elapsed="0.001580">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:38.453324" elapsed="0.003537">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:38.438799" elapsed="0.018294">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:38.431517" elapsed="0.025768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:40.459687" level="INFO">@{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-17T23:13:40.458901" elapsed="0.000850"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:40.460444" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:40.459939" elapsed="0.000622"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:40.459894" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:40.476422" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:40.476730" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:40.476974" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:40.466683" elapsed="0.010345"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:40.477751" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:40.477185" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:40.479117" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:40.478308" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:40.477937" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:40.477145" 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-17T23:13:40.479660" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:13:40.480640" elapsed="0.000904"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:40.480325" elapsed="0.001334"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:40.483433" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:40.482447" elapsed="0.001162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:40.481825" elapsed="0.002079">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:40.480095" elapsed="0.003949">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:40.465801" elapsed="0.018448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:40.458062" elapsed="0.026378">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:42.486962" level="INFO">@{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-17T23:13:42.486124" 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-17T23:13:42.487731" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:42.487203" elapsed="0.000649"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:42.487155" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:42.504742" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:42.505049" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:42.505245" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:42.493493" elapsed="0.011805"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:42.506062" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:42.505454" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:42.507417" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:42.506637" elapsed="0.000884"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:42.506228" elapsed="0.001395"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:42.505415" elapsed="0.002254"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:42.507994" 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-17T23:13:42.508989" elapsed="0.000924"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:42.508680" elapsed="0.001314"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:42.511397" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:42.510435" elapsed="0.001238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:42.510153" elapsed="0.001673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:42.508413" elapsed="0.003553">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:42.492652" elapsed="0.019526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:42.485232" elapsed="0.027134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:44.515086" level="INFO">@{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-17T23:13:44.514314" 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="NOT RUN" start="2026-10-17T23:13:44.515818" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:44.515306" elapsed="0.000656"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:44.515263" elapsed="0.000752"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:44.531809" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:44.532098" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:44.532313" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:44.521444" elapsed="0.010923"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:44.533119" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:44.532526" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:44.534471" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:44.533675" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:44.533287" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:44.532485" 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-17T23:13:44.535040" 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-17T23:13:44.536317" elapsed="0.000923"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:44.535806" elapsed="0.001514"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:44.538752" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:44.537791" elapsed="0.001126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:44.537478" elapsed="0.001581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:44.535539" elapsed="0.003638">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:44.520608" elapsed="0.018768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:44.513511" elapsed="0.026055">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:46.541886" level="INFO">@{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-17T23:13:46.541107" elapsed="0.000842"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:13:46.542612" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:46.542108" elapsed="0.000623"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:46.542066" elapsed="0.000715"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:46.558758" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:46.559073" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:46.559269" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:46.548305" elapsed="0.011017"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:46.560167" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:46.559477" elapsed="0.000808"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:46.561517" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:46.560739" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:46.560336" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:46.559438" elapsed="0.002334"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:46.562095" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:13:46.563091" elapsed="0.001365"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:46.562778" elapsed="0.001760"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:46.566031" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:46.565054" elapsed="0.001123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:46.564739" elapsed="0.001582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:46.562511" elapsed="0.003931">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:46.547452" elapsed="0.019223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:46.540297" elapsed="0.026592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:48.569144" level="INFO">@{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-17T23:13:48.568367" elapsed="0.000836"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:48.569896" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:48.569363" elapsed="0.000651"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:48.569322" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:48.587386" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:48.587754" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:48.587982" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:48.575467" elapsed="0.012570"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:48.588768" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:48.588196" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:48.590140" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:48.589331" elapsed="0.000912"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:48.588956" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:48.588157" elapsed="0.002198"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:48.590686" 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-17T23:13:48.591666" elapsed="0.001177"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:48.591346" elapsed="0.001598"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:48.594356" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:48.593392" elapsed="0.001104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:48.593107" elapsed="0.001566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:48.591119" elapsed="0.003676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:48.574630" elapsed="0.020385">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:48.567600" elapsed="0.027605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:50.597682" level="INFO">@{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-17T23:13:50.596860" elapsed="0.000888"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:50.598521" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:50.598032" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:50.597985" elapsed="0.000744"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:50.615701" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:50.616024" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:50.616254" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:50.604704" elapsed="0.011613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:50.617138" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:50.616508" elapsed="0.000745"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:50.618466" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:50.617688" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:50.617303" elapsed="0.001371"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:50.616461" elapsed="0.002257"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:50.619040" 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-17T23:13:50.620033" elapsed="0.000921"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:50.619725" elapsed="0.001308"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:50.622450" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:50.621474" elapsed="0.001157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:50.621191" elapsed="0.001587">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:50.619458" elapsed="0.003459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:50.603839" elapsed="0.019279">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:50.596015" elapsed="0.027360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:52.626243" level="INFO">@{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-17T23:13:52.625305" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:52.627072" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:52.626490" elapsed="0.000700"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:52.626442" elapsed="0.000802"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:52.644044" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:52.644326" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:52.644520" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:52.632824" elapsed="0.011781"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:52.645359" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:52.644765" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:52.646753" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:52.645962" elapsed="0.000897"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:52.645526" elapsed="0.001604"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:52.644726" elapsed="0.002450"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:52.647477" 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-17T23:13:52.648467" elapsed="0.000931"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:52.648184" elapsed="0.001292"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:52.651100" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:52.649973" elapsed="0.001279">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:52.649669" elapsed="0.001732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:52.647949" elapsed="0.003570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:52.631960" elapsed="0.019883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:52.624308" elapsed="0.027767">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:54.655103" level="INFO">@{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-17T23:13:54.654220" 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-17T23:13:54.655845" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:54.655330" elapsed="0.000653"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:54.655287" elapsed="0.000749"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:54.674075" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:54.674341" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:54.674553" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:54.661681" elapsed="0.012959"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:54.675358" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:54.674798" elapsed="0.000674"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:54.676754" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:54.675953" elapsed="0.000905"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:54.675522" elapsed="0.001428"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:54.674757" elapsed="0.002238"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:13:54.677296" 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-17T23:13:54.678312" elapsed="0.000916"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:54.677996" elapsed="0.001310"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:54.680736" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:54.679780" elapsed="0.001153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:54.679465" elapsed="0.001618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:54.677745" elapsed="0.003536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:54.660807" elapsed="0.020687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:54.653365" elapsed="0.028426">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:56.684501" level="INFO">@{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-17T23:13:56.683669" elapsed="0.000927"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:56.685329" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:56.684777" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:56.684730" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:56.702287" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:56.702607" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:56.702807" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:56.691079" elapsed="0.011807"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:56.703642" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:56.703048" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:56.705008" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:56.704202" elapsed="0.000910"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:56.703810" elapsed="0.001370"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:56.703008" 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-17T23:13:56.705527" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:13:56.706521" elapsed="0.003423"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:56.706236" elapsed="0.003791"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:56.711468" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:56.710487" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:56.710194" elapsed="0.001711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:56.706001" elapsed="0.006035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:56.690214" elapsed="0.022027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:56.682731" elapsed="0.029699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:58.714776" level="INFO">@{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-17T23:13:58.714008" elapsed="0.000830"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:13:58.715502" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:58.715022" elapsed="0.000629"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:58.714978" elapsed="0.000727"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:13:58.730439" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:13:58.730750" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:13:58.730973" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:13:58.721220" elapsed="0.009807"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:13:58.731756" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:13:58.731184" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:13:58.733117" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:13:58.732315" elapsed="0.000905"/>
</kw>
<status status="PASS" start="2026-10-17T23:13:58.731951" elapsed="0.001336"/>
</branch>
<status status="PASS" start="2026-10-17T23:13:58.731144" 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-17T23:13:58.733668" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:13:58.734654" elapsed="0.000897"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:13:58.734337" elapsed="0.001325"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:13:58.737091" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:58.736129" elapsed="0.001186">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:13:58.735823" elapsed="0.001639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:13:58.734106" elapsed="0.003509">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:13:58.720327" elapsed="0.017493">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:13:58.713147" elapsed="0.024891">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:00.740779" level="INFO">@{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-17T23:14:00.739927" 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-17T23:14:00.741564" elapsed="0.000081"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:00.741054" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:00.741005" elapsed="0.000768"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:00.761417" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:00.761773" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:00.762024" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:00.747954" elapsed="0.014126"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:00.762813" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:00.762237" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:00.764187" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:00.763370" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:00.763007" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:00.762197" 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-17T23:14:00.764772" elapsed="0.000462"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:00.765921" elapsed="0.000989"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:00.765613" elapsed="0.001378"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:00.768423" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:00.767440" elapsed="0.001166">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:00.767154" elapsed="0.001605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:00.765347" elapsed="0.003559">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:00.747080" elapsed="0.022037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:00.738952" elapsed="0.030359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:02.772083" level="INFO">@{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-17T23:14:02.771241" 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-17T23:14:02.772846" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:02.772325" elapsed="0.000655"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:02.772279" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:02.788564" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:02.788912" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:02.789111" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:02.778625" 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-17T23:14:02.790024" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:02.789324" elapsed="0.000817"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:02.791367" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:02.790562" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:02.790193" elapsed="0.001349"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:02.789284" elapsed="0.002334"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:02.791939" elapsed="0.000307"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:02.792915" elapsed="0.000902"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:02.792611" elapsed="0.001307"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:02.795329" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:02.794364" elapsed="0.001113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:02.794077" elapsed="0.001576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:02.792353" elapsed="0.003424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:02.777759" elapsed="0.018244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:02.770286" elapsed="0.025910">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:04.799641" level="INFO">@{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-17T23:14:04.798772" elapsed="0.000941"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:04.800420" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:04.799916" elapsed="0.000621"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:04.799846" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:04.816209" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:04.816607" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:04.816836" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:04.806236" elapsed="0.010678"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:04.817656" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:04.817076" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:04.819046" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:04.818218" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:04.817827" elapsed="0.001395"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:04.817035" 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-17T23:14:04.819609" 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-17T23:14:04.820630" elapsed="0.000908"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:04.820304" elapsed="0.001350"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:04.823113" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:04.822132" elapsed="0.001132">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:04.821818" elapsed="0.001595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:04.820066" elapsed="0.003471">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:04.805366" elapsed="0.018415">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:04.797180" elapsed="0.026820">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:06.826800" level="INFO">@{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-17T23:14:06.825956" elapsed="0.000931"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:06.827714" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:06.827176" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:06.827127" elapsed="0.000786"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:06.845085" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:06.845379" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:06.845609" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:06.833601" elapsed="0.012065"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:06.846400" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:06.845826" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:06.847907" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:06.847034" elapsed="0.000982"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:06.846599" elapsed="0.001487"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:06.845786" 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-17T23:14:06.848462" 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-17T23:14:06.849475" elapsed="0.000956"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:06.849188" elapsed="0.001322"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:06.852651" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:06.851063" elapsed="0.001782">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:06.850708" elapsed="0.002318">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:06.848949" elapsed="0.004246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:06.832692" elapsed="0.020746">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:06.824974" elapsed="0.028786">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:08.856293" level="INFO">@{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-17T23:14:08.855434" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:08.857116" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:08.856540" elapsed="0.000699"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:08.856481" elapsed="0.000814"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:08.872678" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:08.872992" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:08.873215" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:08.863041" elapsed="0.010228"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:08.874061" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:08.873431" elapsed="0.000764"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:08.875470" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:08.874648" elapsed="0.000963"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:08.874246" elapsed="0.001438"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:08.873388" 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-17T23:14:08.876058" 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-17T23:14:08.877109" elapsed="0.000999"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:08.876792" elapsed="0.001400"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:08.879767" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:08.878703" elapsed="0.001251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:08.878377" elapsed="0.001730">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:08.876516" elapsed="0.003715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:08.862130" elapsed="0.018424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:08.854532" elapsed="0.026266">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:10.883427" level="INFO">@{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-17T23:14:10.882559" 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="NOT RUN" start="2026-10-17T23:14:10.884235" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:10.883704" elapsed="0.000649"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:10.883656" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:10.901124" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:10.901403" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:10.901654" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:10.890530" elapsed="0.011182"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:10.902444" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:10.901893" elapsed="0.000667"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:10.903829" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:10.903043" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:10.902646" elapsed="0.001381"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:10.901830" elapsed="0.002242"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:10.904373" elapsed="0.000347"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-17T23:14:10.905375" elapsed="0.000942"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:10.905090" elapsed="0.001306"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:10.907847" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:10.906898" elapsed="0.001125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:10.906558" elapsed="0.001614">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:10.904829" elapsed="0.003549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:10.889678" elapsed="0.018944">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:10.881687" elapsed="0.027137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:12.911481" level="INFO">@{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-17T23:14:12.910682" 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-17T23:14:12.912258" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:12.911753" elapsed="0.000619"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:12.911706" elapsed="0.000719"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:12.928028" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:12.928306" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:12.928532" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:12.917905" 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-17T23:14:12.929393" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:12.928816" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:12.930795" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:12.930016" elapsed="0.000909"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:12.929563" elapsed="0.001431"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:12.928773" 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-17T23:14:12.931336" 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-17T23:14:12.932309" elapsed="0.000929"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:12.932025" elapsed="0.001293"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:12.934739" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:12.933790" elapsed="0.001124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:12.933478" elapsed="0.001669">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:12.931777" elapsed="0.003494">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:12.917048" elapsed="0.018426">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:12.909766" elapsed="0.025930">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:14.938613" level="INFO">@{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-17T23:14:14.937803" elapsed="0.000877"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:14.939360" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:14.938845" elapsed="0.000632"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:14.938802" elapsed="0.000727"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:14.954969" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:14.955238" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:14.955454" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:14.945047" elapsed="0.010461"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:14.956268" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:14.955702" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:14.957638" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:14.956832" elapsed="0.000914"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:14.956438" elapsed="0.001377"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:14.955660" elapsed="0.002220"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:14.958185" 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-17T23:14:14.959183" elapsed="0.000947"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:14.958893" elapsed="0.001317"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:14.961675" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:14.960688" elapsed="0.001250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:14.960371" elapsed="0.001718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:14.958636" elapsed="0.003575">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:14.944175" elapsed="0.018241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:14.936445" elapsed="0.026202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:16.965135" level="INFO">@{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-17T23:14:16.964298" 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-17T23:14:16.965926" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:16.965371" elapsed="0.000676"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:16.965326" elapsed="0.000776"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:16.985178" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:16.985449" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:16.985674" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:16.971627" elapsed="0.014103"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:16.986453" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:16.985911" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:16.987840" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:16.987061" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:16.986666" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:16.985846" elapsed="0.002235"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:16.988380" elapsed="0.000418"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:16.989452" elapsed="0.001438"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:16.989168" elapsed="0.001807"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:16.992411" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:16.991429" elapsed="0.001132">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:16.991142" elapsed="0.001601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:16.988931" elapsed="0.003954">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:16.970757" elapsed="0.022333">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:16.963401" elapsed="0.029879">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:18.995761" level="INFO">@{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-17T23:14:18.994934" 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-17T23:14:18.996520" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:18.996012" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:18.995968" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:19.013067" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:19.013337" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:19.013543" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:19.002725" elapsed="0.010908"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:19.014553" elapsed="0.000088"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:19.013802" elapsed="0.000909"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:19.016057" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:19.015196" elapsed="0.000975"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:19.014767" elapsed="0.001479"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:19.013759" elapsed="0.002534"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:19.016645" 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-17T23:14:19.017692" elapsed="0.000975"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:19.017357" elapsed="0.001395"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:19.020272" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:19.019257" elapsed="0.001167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:19.018949" elapsed="0.001660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:19.017113" elapsed="0.003628">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:19.001796" elapsed="0.019185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:18.994061" elapsed="0.027127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:21.023912" level="INFO">@{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-17T23:14:21.023043" 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="NOT RUN" start="2026-10-17T23:14:21.024687" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:21.024149" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:21.024103" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:21.045464" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:21.045883" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:21.046111" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:21.030881" elapsed="0.015285"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:21.046933" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:21.046325" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:21.048277" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:21.047462" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:21.047102" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:21.046284" 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-17T23:14:21.048834" 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-17T23:14:21.049831" elapsed="0.000932"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:21.049514" elapsed="0.001331"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:21.052321" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:21.051344" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:21.051030" elapsed="0.001625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:21.049278" elapsed="0.003507">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:21.030009" elapsed="0.023006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:21.022126" elapsed="0.031087">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:23.056180" level="INFO">@{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-17T23:14:23.055271" 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-17T23:14:23.057129" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:23.056606" elapsed="0.000641"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:23.056528" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:23.075223" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:23.075547" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:23.075792" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:23.062996" elapsed="0.012852"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:23.076714" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:23.076042" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:23.078117" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:23.077289" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:23.076902" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:23.076000" elapsed="0.002337"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:23.078667" 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-17T23:14:23.079730" elapsed="0.000923"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:23.079371" elapsed="0.001364"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:23.082224" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:23.081201" elapsed="0.001200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:23.080919" elapsed="0.001686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:23.079113" elapsed="0.003639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:23.062123" elapsed="0.020873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:23.054224" elapsed="0.029036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:25.086545" level="INFO">@{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-17T23:14:25.085731" 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-17T23:14:25.087343" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:25.086820" elapsed="0.000642"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:25.086775" elapsed="0.000742"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:25.109038" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:25.109329" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:25.109544" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:25.093063" elapsed="0.016566"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:25.110370" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:25.109790" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:25.111746" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:25.110962" elapsed="0.000886"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:25.110537" elapsed="0.001427"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:25.109749" 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-17T23:14:25.112310" 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-17T23:14:25.113305" elapsed="0.000942"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:25.113022" elapsed="0.001315"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:25.115801" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:25.114836" elapsed="0.001144">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:25.114519" elapsed="0.001612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:25.112764" elapsed="0.003486">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:25.092193" elapsed="0.024351">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:25.084781" elapsed="0.031995">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:27.119628" level="INFO">@{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-17T23:14:27.118744" elapsed="0.000953"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:27.120399" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:27.119899" elapsed="0.000618"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:27.119826" elapsed="0.000775"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:27.137269" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:27.137550" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:27.137808" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:27.126137" elapsed="0.011753"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:27.138631" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:27.138049" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:27.140009" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:27.139181" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:27.138799" elapsed="0.001384"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:27.138009" elapsed="0.002221"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:27.140527" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:27.141529" elapsed="0.001439"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:27.141233" elapsed="0.001817"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:27.144471" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:27.143500" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:27.143215" elapsed="0.001595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:27.141000" elapsed="0.004059">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:27.125253" elapsed="0.020021">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:27.117751" elapsed="0.027714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:29.148401" level="INFO">@{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-17T23:14:29.147490" 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-17T23:14:29.149249" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:29.148695" elapsed="0.000680"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:29.148642" elapsed="0.000791"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:29.166685" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:29.167017" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:29.167230" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:29.155563" elapsed="0.011725"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:29.168121" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:29.167457" elapsed="0.000787"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:29.169554" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:29.168722" elapsed="0.000978"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:29.168299" elapsed="0.001475"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:29.167414" elapsed="0.002409"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:29.170164" 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-17T23:14:29.171163" elapsed="0.000983"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:29.170879" elapsed="0.001351"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:29.174041" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:29.172877" elapsed="0.001330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:29.172423" elapsed="0.002065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:29.170625" elapsed="0.004065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:29.154657" elapsed="0.020286">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:29.146417" elapsed="0.028735">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:31.177931" level="INFO">@{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-17T23:14:31.177064" elapsed="0.000935"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:31.178721" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:31.178173" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:31.178126" elapsed="0.000786"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:31.195642" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:31.195975" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:31.196196" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:31.184890" elapsed="0.011358"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:31.197013" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:31.196406" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:31.198353" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:31.197549" elapsed="0.000907"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:31.197179" elapsed="0.001347"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:31.196367" 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-17T23:14:31.198935" 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-17T23:14:31.199925" elapsed="0.000908"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:31.199622" elapsed="0.001313"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:31.202351" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:31.201378" elapsed="0.001250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:31.201096" elapsed="0.001684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:31.199357" elapsed="0.003565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:31.184013" elapsed="0.019112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:31.176150" elapsed="0.027167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:33.206252" level="INFO">@{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-17T23:14:33.205354" elapsed="0.000965"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:33.207069" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:33.206495" elapsed="0.000696"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:33.206448" elapsed="0.000796"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:33.227149" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:33.227629" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:33.227974" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:33.212812" elapsed="0.015226"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:33.229215" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:33.228305" elapsed="0.001042"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:33.230840" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:33.229884" elapsed="0.001087"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:33.229406" elapsed="0.001636"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:33.228235" elapsed="0.002852"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:33.231395" elapsed="0.000528"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:33.232660" elapsed="0.000968"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:33.232307" elapsed="0.001408"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:33.235200" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:33.234195" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:33.233907" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:33.232048" elapsed="0.003650">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:33.211946" elapsed="0.024001">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:33.204305" elapsed="0.031852">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:35.239838" level="INFO">@{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-17T23:14:35.238969" elapsed="0.000963"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:35.240730" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:35.240131" elapsed="0.000739"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:35.240076" elapsed="0.000851"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:35.256513" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:35.256920" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:35.257141" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:35.246507" elapsed="0.010688"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:35.258084" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:35.257356" elapsed="0.000847"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:35.259489" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:35.258687" elapsed="0.000938"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:35.258256" elapsed="0.001440"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:35.257315" elapsed="0.002426"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:35.260067" 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-17T23:14:35.261106" elapsed="0.000964"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:35.260778" elapsed="0.001372"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:35.263619" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:35.262632" elapsed="0.001151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:35.262315" elapsed="0.001644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:35.260504" elapsed="0.003581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:35.245608" elapsed="0.018684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:35.237940" elapsed="0.026547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:37.267593" level="INFO">@{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-17T23:14:37.266706" elapsed="0.000966"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:14:37.268462" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:37.267884" elapsed="0.000726"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:37.267814" elapsed="0.000856"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:37.287334" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:37.287845" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:37.288077" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:37.274560" elapsed="0.013568"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:37.288893" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:37.288284" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:37.290253" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:37.289433" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:37.289059" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:37.288244" 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-17T23:14:37.290805" 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-17T23:14:37.291866" elapsed="0.004138"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:37.291527" elapsed="0.004561"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:37.297622" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:37.296547" elapsed="0.001247">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:37.296255" elapsed="0.001720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:37.291274" elapsed="0.006825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:37.273720" elapsed="0.024588">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:37.265644" elapsed="0.032853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:39.301620" level="INFO">@{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-17T23:14:39.300731" elapsed="0.000965"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:39.302664" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:39.302080" elapsed="0.000703"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:39.302027" elapsed="0.000811"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:39.318415" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:39.318826" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:39.319056" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:39.308492" elapsed="0.010617"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:39.319886" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:39.319267" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:39.321243" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:39.320430" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:39.320055" elapsed="0.001365"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:39.319227" 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-17T23:14:39.321801" 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-17T23:14:39.322867" elapsed="0.000951"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:39.322523" elapsed="0.001397"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:39.325366" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:39.324368" elapsed="0.001167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:39.324086" elapsed="0.001639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:39.322269" elapsed="0.003601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:39.307643" elapsed="0.018448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:39.299667" elapsed="0.026689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:41.329453" level="INFO">@{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-17T23:14:41.328479" elapsed="0.001052"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:14:41.330339" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:41.329776" elapsed="0.000683"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:41.329719" elapsed="0.000800"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:41.399216" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:41.399435" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:41.399634" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:41.389735" 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-17T23:14:41.400304" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:41.399824" elapsed="0.000558"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:41.401320" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:41.400675" elapsed="0.000712"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:41.400423" elapsed="0.001008"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:41.399783" elapsed="0.001677"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:41.401683" elapsed="0.000287"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:41.402433" elapsed="0.000653"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:41.402236" elapsed="0.000913"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:41.404115" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:41.403444" elapsed="0.000777">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:41.403263" elapsed="0.001059">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:41.402068" elapsed="0.002331">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:41.388864" elapsed="0.015772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:41.327387" elapsed="0.077377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:43.407241" level="INFO">@{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-17T23:14:43.406372" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:43.408022" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:43.407474" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:43.407430" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:43.423307" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:43.423634" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:43.423836" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:43.413789" elapsed="0.010126"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:43.424653" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:43.424073" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:43.426009" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:43.425206" elapsed="0.000908"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:43.424821" elapsed="0.001360"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:43.424033" elapsed="0.002192"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:43.426531" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:43.427545" elapsed="0.001327"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:43.427252" elapsed="0.001703"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:43.430402" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:43.429406" elapsed="0.001154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:43.429121" elapsed="0.001622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:43.427015" elapsed="0.003958">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:43.412935" elapsed="0.018252">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:43.405475" elapsed="0.025902">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:45.433902" level="INFO">@{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-17T23:14:45.433109" 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-17T23:14:45.434648" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:45.434131" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:45.434089" elapsed="0.000733"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:45.449710" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:45.450005" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:45.450201" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:45.440462" elapsed="0.009793"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:45.451021" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:45.450416" elapsed="0.000722"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:45.452360" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:45.451550" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:45.451188" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:45.450374" 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-17T23:14:45.452944" 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-17T23:14:45.453939" elapsed="0.000902"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:45.453631" elapsed="0.001316"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:45.456376" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:45.455398" elapsed="0.001127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:45.455110" elapsed="0.001685">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:45.453367" elapsed="0.003578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:45.439617" elapsed="0.017535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:45.432207" elapsed="0.025142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:47.459910" level="INFO">@{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-17T23:14:47.459096" elapsed="0.000880"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:47.460678" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:47.460147" elapsed="0.000655"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:47.460101" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:47.476127" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:47.476412" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:47.476667" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:47.466825" elapsed="0.009899"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:47.477468" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:47.476910" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:47.478899" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:47.478083" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:47.477675" elapsed="0.001402"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:47.476866" 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-17T23:14:47.479429" 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-17T23:14:47.480437" elapsed="0.000947"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:47.480149" elapsed="0.001316"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:47.482960" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:47.481990" elapsed="0.001201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:47.481663" elapsed="0.001676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:47.479909" elapsed="0.003552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:47.465959" elapsed="0.017738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:47.458206" elapsed="0.025720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:49.487137" level="INFO">@{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-17T23:14:49.486069" 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-17T23:14:49.488009" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:49.487401" elapsed="0.000761"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:49.487350" elapsed="0.000885"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:49.506948" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:49.507301" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:49.507509" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:49.494466" elapsed="0.013097"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:49.508488" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:49.507764" elapsed="0.000878"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:49.509930" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:49.509090" elapsed="0.000948"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:49.508695" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:49.507721" elapsed="0.002430"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:49.510459" elapsed="0.000504"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<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-17T23:14:49.511659" elapsed="0.001046"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:49.511334" elapsed="0.001453"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:49.514261" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:49.513271" elapsed="0.001149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:49.512982" elapsed="0.001618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:49.511084" elapsed="0.003644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:49.493606" elapsed="0.021365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:49.485021" elapsed="0.030149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:51.518640" level="INFO">@{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-17T23:14:51.517776" 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="NOT RUN" start="2026-10-17T23:14:51.519432" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:51.518919" elapsed="0.000633"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:51.518868" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:51.535512" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:51.535880" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:51.536100" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:51.525216" elapsed="0.010937"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:51.537020" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:51.536309" elapsed="0.000830"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:51.538383" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:51.537557" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:51.537192" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:51.536269" elapsed="0.002367"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:51.538970" 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-17T23:14:51.539983" elapsed="0.000937"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:51.539677" elapsed="0.001325"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:51.542433" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:51.541446" elapsed="0.001176">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:51.541163" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:51.539402" elapsed="0.003513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:51.524334" elapsed="0.018787">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:51.516808" elapsed="0.026506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:53.546179" level="INFO">@{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-17T23:14:53.545298" 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="NOT RUN" start="2026-10-17T23:14:53.547016" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:53.546433" elapsed="0.000703"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:53.546384" elapsed="0.000808"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:53.563978" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:53.564399" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:53.564637" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:53.553007" elapsed="0.011687"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:53.565556" elapsed="0.000096"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:53.564886" elapsed="0.000835"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:53.567041" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:53.566193" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:53.565773" elapsed="0.001446"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:53.564815" elapsed="0.002450"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:53.567607" 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-17T23:14:53.568727" elapsed="0.001750"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:53.568324" elapsed="0.002278"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:53.572404" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:53.571239" elapsed="0.001360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:53.570785" elapsed="0.001975">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:53.568074" elapsed="0.004848">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:53.551972" elapsed="0.021229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:53.544277" elapsed="0.029172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:55.576594" level="INFO">@{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-17T23:14:55.575665" elapsed="0.001005"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:14:55.577538" elapsed="0.000076"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:55.577013" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:55.576958" elapsed="0.000792"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:55.593442" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:55.593794" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:55.594018" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:55.583388" elapsed="0.010684"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:55.594819" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:55.594232" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:55.596249" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:55.595419" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:55.595014" elapsed="0.001412"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:55.594191" 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-17T23:14:55.596810" 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-17T23:14:55.597830" elapsed="0.000944"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:55.597513" elapsed="0.001363"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:55.600305" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:55.599324" elapsed="0.001140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:55.599043" elapsed="0.001603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:55.597269" elapsed="0.003506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:55.582512" elapsed="0.018498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:55.574533" elapsed="0.026741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:57.604689" level="INFO">@{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-17T23:14:57.603393" elapsed="0.001371"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${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-17T23:14:57.605513" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:57.604984" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:57.604930" elapsed="0.000802"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:57.622013" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:57.622341" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:57.622561" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:57.611918" elapsed="0.010730"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:57.623416" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:57.622808" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:57.624822" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:57.624024" elapsed="0.000927"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:57.623628" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:57.622767" 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-17T23:14:57.625365" 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-17T23:14:57.626399" elapsed="0.000960"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:57.626107" elapsed="0.001335"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:57.628940" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:57.627949" elapsed="0.001157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:57.627640" elapsed="0.001620">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:57.625837" elapsed="0.003545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:57.611036" elapsed="0.018706">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:57.602340" elapsed="0.027668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:59.632864" level="INFO">@{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-17T23:14:59.631993" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="NOT RUN" start="2026-10-17T23:14:59.633656" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:59.633115" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:59.633066" elapsed="0.000768"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:14:59.648833" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:14:59.649161" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:14:59.649361" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:14:59.639463" elapsed="0.009950"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:14:59.650167" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:14:59.649600" elapsed="0.000682"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:14:59.651550" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:14:59.650728" elapsed="0.000961"/>
</kw>
<status status="PASS" start="2026-10-17T23:14:59.650334" elapsed="0.001424"/>
</branch>
<status status="PASS" start="2026-10-17T23:14:59.649530" elapsed="0.002275"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:14:59.652125" 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-17T23:14:59.653163" elapsed="0.000959"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:14:59.652877" elapsed="0.001326"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:14:59.655689" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:14:59.654706" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:14:59.654368" elapsed="0.001652">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:14:59.652612" elapsed="0.003622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:14:59.638619" elapsed="0.017832">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:14:59.631012" elapsed="0.025668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:15:01.659964" level="INFO">@{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-17T23:15:01.659116" 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-17T23:15:01.660741" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:01.660207" elapsed="0.000673"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:01.660161" elapsed="0.000773"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:01.678625" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01854k8up05fntzjfxk54xsxrh2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:01.678950" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:01.679171" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:01.666415" elapsed="0.012811"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:01.679993" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:01.679386" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:01.681336" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:01.680524" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:01.680162" elapsed="0.001356"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:01.679345" 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-17T23:15:01.682083" 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-17T23:15:01.683088" elapsed="0.000940"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:15:01.682780" elapsed="0.001329"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:01.685559" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:15:01.684560" elapsed="0.001187">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-10-17T23:15:01.684271" elapsed="0.001742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:01.682512" elapsed="0.003630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:01.665551" elapsed="0.020797">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-10-17T23:15:01.658204" elapsed="0.028343">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-10-17T23:15:01.686765" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:13:30.311981" elapsed="91.375023">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:15:01.687423" elapsed="0.000047"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:01.689286" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:15:01.989033" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:15:01.989337" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:15:01.989432" 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-17T23:15:01.989517" 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-17T23:15:01.688937" elapsed="0.300628"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:01.990737" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:01.990120" elapsed="0.000709"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:01.991608" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:15:02.344027" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:15:02.344323" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:15:02.344415" 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-17T23:15:02.344499" 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-17T23:15:01.991239" elapsed="0.353309"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.345460" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:15:02.422011" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:15:02.422250" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:15:02.422342" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:15:02.422425" 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-17T23:15:02.345079" elapsed="0.077393"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.423261" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:15:02.471295" 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-17T23:15:02.423051" elapsed="0.048377"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:02.490067" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01854k8up05fntzjfxk54xsxrh2.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:02.490166" level="INFO">DELETE Response : url=http://10.30.171.120: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-17T23:15:02.490354" 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-17T23:15:02.471784" elapsed="0.018625"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:02.500063" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01854k8up05fntzjfxk54xsxrh2.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:02.500324" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:15:02.500534" 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-17T23:15:02.490766" elapsed="0.009857"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:15:01.688109" elapsed="0.812658"/>
</kw>
<doc>CallHome SSH device registered with global credentials should result to successful mount.</doc>
<status status="FAIL" start="2026-10-17T23:13:29.607444" elapsed="92.893439">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDUYZVx8JSGYpQ2D898hy+Sbew2l0RyPQ1BvuCbageCT76MWO5CS9f2dE3Wbug60DJJtG0arBUnRARmpDMpFnYKPcJ0J/Z+Ro4ya6q/+6z4kmeBvxlqgdNg3lyJdWt6TLV6MEU22cRG2lhf8KEj1FobcgmCnKnKUrlUFlHdbn5fkftk1U+EAM6B6u/ZWZ4w5LAzQLtulfjE4dlGRFRxCDsQfXA6BggFb9mpDeR0B3VQ0ks3GhqxEqKkxYCpHrImK0FlIiMW7c4Z8hfc61bgH6U8tHyCnv8ochv368GD4eBh666gKs+9iehaTOK2Mxox9msBzA3CyJpwsl1YmMjffm0l"}}]}}}' 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-17T23:15:02.504543" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab5098e1d0&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-17T23:15:02.503611" elapsed="0.001287"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.505485" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:15:02.519245" 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-17T23:15:02.505286" elapsed="0.014079"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.520012" 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-17T23:15:02.753171" 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-17T23:15:02.519783" elapsed="0.233540"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.754038" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:15:02.807453" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:15:02.807716" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFi...</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-17T23:15:02.753775" elapsed="0.053999"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:15:02.811452" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFi...</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-17T23:15:02.808188" elapsed="0.003361"/>
</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-17T23:15:02.502973" elapsed="0.308736"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.856262" 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-17T23:15:02.812758" elapsed="0.043638"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.867517" 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-17T23:15:02.856911" elapsed="0.010777"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-17T23:15:02.812082" elapsed="0.055733"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:15:02.869215" 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-17T23:15:02.869490" 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-17T23:15:02.868938" elapsed="0.000605"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:15:02.870355" 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-17T23:15:02.869927" elapsed="0.000483"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:15:02.871198" 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-17T23:15:02.870766" elapsed="0.000486"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:02.893547" level="INFO">PUT Request : url=http://10.30.171.120: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-17T23:15:02.893692" level="INFO">PUT Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=204, reason=No Content 
 headers={'Set-Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:15:02 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:02.893928" 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-17T23:15:02.871548" elapsed="0.022437"/>
</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-17T23:15:02.894363" elapsed="0.000894"/>
</kw>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-10-17T23:15:02.868198" elapsed="0.027193"/>
</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-17T23:15:02.898219" 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-17T23:15:02.898500" 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-17T23:15:02.897954" elapsed="0.000600"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:15:02.899646" 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-17T23:15:02.898958" elapsed="0.000785"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:02.897308" elapsed="0.002568"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:02.896722" elapsed="0.003205"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-17T23:15:02.900281" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:02.899982" elapsed="0.000402"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:02.896676" elapsed="0.003753"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:15:02.901217" 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-17T23:15:02.900768" elapsed="0.000505"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:15:02.902058" 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-17T23:15:02.901632" elapsed="0.000481"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:15:02.902885" 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-17T23:15:02.902438" elapsed="0.000506"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:15:02.903789" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deu...</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-17T23:15:02.903355" elapsed="0.000510"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:02.920307" level="INFO">POST Request : url=http://10.30.171.120: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=node05up9138x7yrw1esyjzln096s3.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:15:02.920418" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:02.920632" 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-17T23:15:02.904165" elapsed="0.016523"/>
</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-17T23:15:02.921065" elapsed="0.000810"/>
</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-17T23:15:02.895950" elapsed="0.026054"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:15:02.922776" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-17T23:15:03.239871" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:15:03.240148" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:15:03.240237" 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-17T23:15:03.240320" 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-17T23:15:02.922383" elapsed="0.317984"/>
</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-17T23:15:03.244371" level="INFO">@{expected_values} = [ "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-17T23:15:03.243636" elapsed="0.000803"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:03.245194" elapsed="0.000356"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:03.244656" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:03.244604" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:03.260020" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:03.260314" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:03.260530" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:03.251278" elapsed="0.009338"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:03.261342" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:03.260775" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:03.262710" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:03.261922" elapsed="0.000891"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:03.261509" elapsed="0.001499"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:03.260735" elapsed="0.002326"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:03.263372" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:03.265398" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:03.264380" elapsed="0.001171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:03.264093" elapsed="0.001640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:03.263829" elapsed="0.002049">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:03.250419" elapsed="0.015670">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:03.242817" elapsed="0.023467">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:05.269003" level="INFO">@{expected_values} = [ "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-17T23:15:05.268152" elapsed="0.000922"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:05.269784" elapsed="0.000385"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:05.269250" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:05.269204" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:05.287265" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:05.287551" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:05.287803" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:05.275815" elapsed="0.012063"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:05.288615" elapsed="0.000142"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:05.288036" elapsed="0.000792"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:05.290080" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:05.289267" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:05.288904" elapsed="0.001350"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:05.287996" elapsed="0.002303"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:05.290634" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:05.293133" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:05.291642" elapsed="0.001646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:05.291328" elapsed="0.002111">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:05.291088" elapsed="0.002475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:05.274962" elapsed="0.018842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:05.267191" elapsed="0.026828">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:07.296599" level="INFO">@{expected_values} = [ "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-17T23:15:07.295772" elapsed="0.000896"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:07.297356" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:07.296858" elapsed="0.000968"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:07.296794" elapsed="0.001111"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:07.313089" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:07.313370" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:07.313690" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:07.303447" elapsed="0.010300"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:07.314482" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:07.313930" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:07.315904" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:07.315083" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:07.314688" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:07.313888" 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-17T23:15:07.316435" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:07.318449" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:07.317439" elapsed="0.001194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:07.317152" elapsed="0.001630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:07.316916" elapsed="0.002018">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:07.302564" elapsed="0.016578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:07.294883" elapsed="0.024457">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:09.322092" level="INFO">@{expected_values} = [ "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-17T23:15:09.321228" elapsed="0.000930"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:09.322895" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:09.322335" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:09.322288" elapsed="0.001107"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:09.339971" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:09.340360" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:09.340626" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:09.329367" elapsed="0.011323"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:09.341466" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:09.340883" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:09.342907" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:09.342066" elapsed="0.000949"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:09.341671" elapsed="0.001413"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:09.340818" 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-17T23:15:09.343436" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:09.345476" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:09.344452" elapsed="0.001211">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:09.344160" elapsed="0.001652">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:09.343922" elapsed="0.002039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:09.328442" elapsed="0.017728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:09.320262" elapsed="0.026104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:11.349180" level="INFO">@{expected_values} = [ "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-17T23:15:11.348312" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:11.349978" elapsed="0.000471"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:11.349423" elapsed="0.001109"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:11.349377" elapsed="0.001244"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:11.366739" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:11.367058" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:11.367256" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:11.356223" elapsed="0.011087"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:11.368074" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:11.367469" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:11.369426" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:11.368635" elapsed="0.000897"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:11.368242" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:11.367428" 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-17T23:15:11.370006" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:11.372043" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:11.371024" elapsed="0.001170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:11.370702" elapsed="0.001641">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:11.370432" elapsed="0.002034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:11.355269" elapsed="0.017435">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:11.347323" elapsed="0.025602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:13.376237" level="INFO">@{expected_values} = [ "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-17T23:15:13.374874" elapsed="0.001430"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:13.377046" elapsed="0.000368"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:13.376483" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:13.376434" elapsed="0.001115"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:13.393094" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:13.393381" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:13.393635" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:13.383101" elapsed="0.010592"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:13.394435" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:13.393880" elapsed="0.000675"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:13.395827" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:13.395034" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:13.394641" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:13.393814" 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-17T23:15:13.396379" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:13.398387" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:13.397379" elapsed="0.001158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:13.397092" elapsed="0.001626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:13.396835" elapsed="0.002030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:13.382231" elapsed="0.016841">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:13.373927" elapsed="0.025433">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:15.402103" level="INFO">@{expected_values} = [ "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-17T23:15:15.401245" 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-17T23:15:15.402903" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:15.402344" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:15.402299" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:15.420012" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:15.420296" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:15.420493" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:15.409152" elapsed="0.011396"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:15.421388" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:15.420753" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:15.422817" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:15.422022" elapsed="0.000925"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:15.421558" elapsed="0.001461"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:15.420705" 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-17T23:15:15.423366" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:15.425379" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:15.424367" elapsed="0.001164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:15.424079" elapsed="0.001639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:15.423822" elapsed="0.002059">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:15.408277" elapsed="0.017939">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:15.400322" elapsed="0.026093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:17.431881" level="INFO">@{expected_values} = [ "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-17T23:15:17.431042" 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-17T23:15:17.432644" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:17.432121" elapsed="0.000986"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:17.432074" elapsed="0.001086"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:17.448199" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:17.448494" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:17.448773" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:17.438688" elapsed="0.010141"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:17.449641" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:17.449028" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:17.451051" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:17.450207" elapsed="0.000948"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:17.449815" elapsed="0.001409"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:17.448983" 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-17T23:15:17.451598" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:17.453625" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:17.452608" elapsed="0.001171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:17.452287" elapsed="0.001661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:17.452050" elapsed="0.002114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:17.437811" elapsed="0.016563">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:17.430136" elapsed="0.024467">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:19.457202" level="INFO">@{expected_values} = [ "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-17T23:15:19.456355" 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-17T23:15:19.458030" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:19.457444" elapsed="0.001031"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:19.457397" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:19.474358" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:19.474686" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:19.474917" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:19.464152" 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-17T23:15:19.475735" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:19.475137" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:19.477191" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:19.476329" elapsed="0.000969"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:19.475951" elapsed="0.001416"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:19.475095" elapsed="0.002317"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:19.477748" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:19.480237" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:19.478746" elapsed="0.001644">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:19.478428" elapsed="0.002229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:19.478193" elapsed="0.002595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:19.463265" elapsed="0.017754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:19.455442" elapsed="0.025773">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:21.484127" level="INFO">@{expected_values} = [ "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-17T23:15:21.483259" 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-17T23:15:21.484935" elapsed="0.000365"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:21.484372" elapsed="0.001010"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:21.484324" elapsed="0.001114"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:21.500638" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:21.500973" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:21.501175" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:21.491037" elapsed="0.010190"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:21.501999" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:21.501386" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:21.503349" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:21.502536" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:21.502168" elapsed="0.001353"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:21.501346" elapsed="0.002219"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:21.503927" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:21.505936" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:21.504924" elapsed="0.001257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:21.504615" elapsed="0.001717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:21.504347" elapsed="0.002111">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:21.490158" elapsed="0.016541">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:21.482176" elapsed="0.024745">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:23.509542" level="INFO">@{expected_values} = [ "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-17T23:15:23.508725" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:23.510347" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:23.509820" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:23.509774" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:23.527507" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:23.527907" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:23.528131" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:23.516964" elapsed="0.011222"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:23.528956" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:23.528347" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:23.530304" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:23.529493" elapsed="0.000916"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:23.529127" elapsed="0.001352"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:23.528306" 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-17T23:15:23.530971" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:23.532994" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:23.531984" elapsed="0.001165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:23.531669" elapsed="0.001627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:23.531397" elapsed="0.002019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:23.516071" elapsed="0.017579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:23.507797" elapsed="0.026071">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:25.536642" level="INFO">@{expected_values} = [ "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-17T23:15:25.535754" elapsed="0.000963"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:25.537419" elapsed="0.000404"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:25.536919" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:25.536870" elapsed="0.001111"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:25.553043" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:25.553338" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:25.553540" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:25.543538" 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-17T23:15:25.554414" elapsed="0.000065"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:25.553789" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:25.555990" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:25.555161" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:25.554749" elapsed="0.001414"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:25.553749" elapsed="0.002458"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:25.556513" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:25.558610" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:25.557519" elapsed="0.001277">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:25.557231" elapsed="0.001753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:25.556993" elapsed="0.002118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:25.542690" elapsed="0.016629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:25.534796" elapsed="0.024717">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:27.562991" level="INFO">@{expected_values} = [ "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-17T23:15:27.561526" elapsed="0.001537"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:27.563780" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:27.563241" elapsed="0.001011"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:27.563195" elapsed="0.001111"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:27.580458" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:27.580824" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:27.581153" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:27.569899" elapsed="0.011310"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:27.581973" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:27.581370" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:27.583336" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:27.582513" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:27.582145" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:27.581329" 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-17T23:15:27.583924" elapsed="0.000487"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:27.586117" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:27.585105" elapsed="0.001164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:27.584793" elapsed="0.001623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:27.584524" elapsed="0.002016">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:27.569020" elapsed="0.017778">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:27.560541" elapsed="0.026481">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:29.589686" level="INFO">@{expected_values} = [ "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-17T23:15:29.588860" 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-17T23:15:29.590459" elapsed="0.000417"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:29.589956" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:29.589909" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:29.605924" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:29.606357" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:29.606563" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:29.596477" elapsed="0.010176"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:29.607400" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:29.606816" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:29.608824" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:29.608026" elapsed="0.001020"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:29.607603" elapsed="0.001518"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:29.606775" 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-17T23:15:29.609475" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:29.611497" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:29.610486" elapsed="0.001203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:29.610196" elapsed="0.001668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:29.609957" elapsed="0.002035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:29.595630" elapsed="0.016566">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:29.587933" elapsed="0.024457">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:31.615562" level="INFO">@{expected_values} = [ "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-17T23:15:31.614759" 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-17T23:15:31.616365" elapsed="0.000523"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:31.615859" elapsed="0.001112"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:31.615790" elapsed="0.001237"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:31.633673" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:31.633998" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:31.634234" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:31.622620" elapsed="0.011679"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:31.635120" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:31.634487" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:31.636524" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:31.635693" elapsed="0.000970"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:31.635294" elapsed="0.001441"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:31.634440" 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-17T23:15:31.637113" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:31.639228" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:31.638142" elapsed="0.001236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:31.637812" elapsed="0.001715">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:31.637542" elapsed="0.002153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:31.621675" elapsed="0.018250">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:31.613878" elapsed="0.026249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:33.643135" level="INFO">@{expected_values} = [ "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-17T23:15:33.641982" elapsed="0.001225"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:33.643966" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:33.643384" elapsed="0.001030"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:33.643337" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:33.659614" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:33.659937" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:33.660135" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:33.650024" elapsed="0.010165"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:33.660951" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:33.660348" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:33.662303" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:33.661487" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:33.661120" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:33.660307" elapsed="0.002214"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:33.662880" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:33.665367" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:33.663880" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:33.663538" elapsed="0.002168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:33.663302" elapsed="0.002551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:33.649145" elapsed="0.016922">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:33.641067" elapsed="0.025285">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:35.669068" level="INFO">@{expected_values} = [ "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-17T23:15:35.668180" elapsed="0.000953"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:35.669865" elapsed="0.000368"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:35.669306" elapsed="0.001018"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:35.669260" elapsed="0.001127"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:35.687741" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:35.688054" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:35.688254" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:35.676018" elapsed="0.012290"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:35.689081" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:35.688470" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:35.690435" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:35.689650" elapsed="0.000889"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:35.689251" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:35.688430" elapsed="0.002261"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:35.691023" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:35.693122" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:35.692109" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:35.691793" elapsed="0.001656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:35.691481" elapsed="0.002137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:35.675146" elapsed="0.018803">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:35.667265" elapsed="0.026890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:37.696700" level="INFO">@{expected_values} = [ "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-17T23:15:37.695887" 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-17T23:15:37.697466" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:37.696968" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:37.696921" elapsed="0.001099"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:37.714073" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:37.714352" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:37.714602" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:37.704068" elapsed="0.010590"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:37.715399" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:37.714822" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:37.716796" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:37.715998" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:37.715601" elapsed="0.001395"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:37.714780" 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-17T23:15:37.717350" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:37.719419" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:37.718350" elapsed="0.001256">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:37.718062" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:37.717804" elapsed="0.002194">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:37.703184" elapsed="0.017026">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:37.695001" elapsed="0.025417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:39.723001" level="INFO">@{expected_values} = [ "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-17T23:15:39.722170" 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-17T23:15:39.723765" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:39.723239" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:39.723194" elapsed="0.001090"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:39.739001" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:39.739282" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:39.739478" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:39.729932" elapsed="0.009599"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:39.740294" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:39.739726" elapsed="0.000685"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:39.741667" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:39.740877" elapsed="0.000898"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:39.740462" elapsed="0.001409"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:39.739684" elapsed="0.002234"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:39.742224" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:39.744232" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:39.743225" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:39.742936" elapsed="0.001720">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:39.742679" elapsed="0.002109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:39.729038" elapsed="0.015980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:39.721254" elapsed="0.023959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:41.748404" level="INFO">@{expected_values} = [ "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-17T23:15:41.747050" elapsed="0.001427"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:41.749238" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:41.748712" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:41.748660" elapsed="0.001109"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:41.766557" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:41.766916" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:41.767138" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:41.755391" elapsed="0.011802"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:41.768026" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:41.767354" elapsed="0.000789"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:41.769416" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:41.768618" elapsed="0.000902"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:41.768196" elapsed="0.001426"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:41.767314" 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-17T23:15:41.769997" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:41.772060" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:41.770999" elapsed="0.001297">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:41.770682" elapsed="0.001765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:41.770418" elapsed="0.002186">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:41.754483" elapsed="0.018332">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:41.746079" elapsed="0.026957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:43.775621" level="INFO">@{expected_values} = [ "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-17T23:15:43.774795" elapsed="0.000896"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:43.776392" elapsed="0.000394"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:43.775889" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:43.775816" elapsed="0.001127"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:43.793480" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:43.793808" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:43.794028" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:43.782499" elapsed="0.011582"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:43.794814" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:43.794239" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:43.796188" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:43.795370" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:43.795004" elapsed="0.001360"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:43.794199" 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-17T23:15:43.796855" elapsed="0.000318"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:43.798877" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:43.797869" elapsed="0.001161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:43.797526" elapsed="0.001653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:43.797289" elapsed="0.002014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:43.781664" elapsed="0.017842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:43.773904" elapsed="0.025831">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:45.802898" level="INFO">@{expected_values} = [ "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-17T23:15:45.802066" 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-17T23:15:45.803664" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:45.803136" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:45.803090" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:45.820226" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:45.820510" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:45.820779" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:45.809693" elapsed="0.011162"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:45.821565" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:45.821018" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:45.823065" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:45.822246" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:45.821869" elapsed="0.001373"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:45.820978" elapsed="0.002309"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:45.823633" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:45.825648" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:45.824639" elapsed="0.001162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:45.824320" elapsed="0.001655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:45.824081" elapsed="0.002018">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:45.808815" elapsed="0.017487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:45.801163" elapsed="0.025333">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:47.829061" level="INFO">@{expected_values} = [ "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-17T23:15:47.828228" 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-17T23:15:47.829827" elapsed="0.000384"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:47.829298" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:47.829254" elapsed="0.001089"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:47.847436" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:47.847779" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:47.848091" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:47.835938" elapsed="0.012207"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:47.848915" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:47.848306" elapsed="0.000726"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:47.850299" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:47.849497" elapsed="0.000903"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:47.849083" elapsed="0.001386"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:47.848266" 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-17T23:15:47.850869" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:47.853410" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:47.851895" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:47.851526" elapsed="0.002249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:47.851292" elapsed="0.002637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:47.835028" elapsed="0.019105">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:47.827331" elapsed="0.026990">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:49.857074" level="INFO">@{expected_values} = [ "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-17T23:15:49.856229" 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-17T23:15:49.857869" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:49.857317" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:49.857269" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:49.875244" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:49.875687" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:49.875920" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:49.863890" elapsed="0.012086"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:49.876723" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:49.876135" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:49.878098" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:49.877281" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:49.876915" elapsed="0.001357"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:49.876094" elapsed="0.002222"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:49.878651" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:49.880685" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:49.879664" elapsed="0.001203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:49.879345" elapsed="0.001676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:49.879104" elapsed="0.002042">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:49.863016" elapsed="0.018336">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:49.855296" elapsed="0.026245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:51.884101" level="INFO">@{expected_values} = [ "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-17T23:15:51.883274" 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-17T23:15:51.884882" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:51.884336" elapsed="0.001086"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:51.884292" elapsed="0.001185"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:51.901900" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:51.902180" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:51.902397" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:51.891423" elapsed="0.011028"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:51.903213" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:51.902641" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:51.904557" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:51.903776" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:51.903379" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:51.902598" elapsed="0.002214"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:51.905141" elapsed="0.000308"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:51.907147" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:51.906142" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:51.905851" elapsed="0.001596">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:51.905559" elapsed="0.002043">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:51.890545" elapsed="0.017267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:51.882388" elapsed="0.025639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:53.910888" level="INFO">@{expected_values} = [ "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-17T23:15:53.909975" elapsed="0.000982"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:53.911663" elapsed="0.000388"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:53.911130" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:53.911083" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:53.927305" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:53.927640" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:53.927877" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:53.917688" elapsed="0.010246"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:53.928676" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:53.928093" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:53.930055" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:53.929238" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:53.928867" elapsed="0.001362"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:53.928053" elapsed="0.002220"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:53.930609" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:53.932606" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:53.931603" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:53.931286" elapsed="0.001642">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:53.931051" elapsed="0.002003">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:53.916809" elapsed="0.016447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:53.909020" elapsed="0.024520">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:55.936954" level="INFO">@{expected_values} = [ "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-17T23:15:55.935539" elapsed="0.001484"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:55.937727" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:55.937197" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:55.937152" elapsed="0.001105"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:55.953653" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:55.953972" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:55.954191" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:55.943916" elapsed="0.010331"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:55.955012" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:55.954407" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:55.956373" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:55.955549" elapsed="0.000929"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:55.955183" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:55.954366" 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-17T23:15:55.956960" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:55.958987" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:55.957953" elapsed="0.001185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:55.957647" elapsed="0.001637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:55.957380" elapsed="0.002030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:55.943032" elapsed="0.016701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:55.934644" elapsed="0.025310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:57.962757" level="INFO">@{expected_values} = [ "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-17T23:15:57.961928" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:15:57.963524" elapsed="0.000421"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:57.963028" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:57.962979" elapsed="0.001100"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:15:57.980265" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:15:57.980563" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:15:57.980798" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:57.969701" elapsed="0.011171"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:15:57.981606" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:15:57.981033" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:15:57.982978" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:15:57.982177" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:57.981778" elapsed="0.001373"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:57.980994" elapsed="0.002203"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:15:57.983500" elapsed="0.000428"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:15:57.985614" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:57.984598" elapsed="0.001175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:57.984282" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:15:57.984043" elapsed="0.002118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:57.968798" elapsed="0.017590">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:57.960941" elapsed="0.025667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:15:59.992135" level="INFO">@{expected_values} = [ "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-17T23:15:59.991297" 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-17T23:15:59.992925" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-17T23:15:59.992375" elapsed="0.000992"/>
</branch>
<status status="PASS" start="2026-10-17T23:15:59.992329" elapsed="0.001092"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:00.007127" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:00.007407" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:00.007659" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:15:59.998956" elapsed="0.008760"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:00.008448" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:00.007897" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:00.009845" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:00.009039" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:00.008647" elapsed="0.001377"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:00.007854" elapsed="0.002214"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:00.010372" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:00.012377" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:00.011374" elapsed="0.001154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:00.011088" elapsed="0.001710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:00.010849" elapsed="0.002106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:15:59.998082" elapsed="0.015077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:15:59.990388" elapsed="0.022966">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:02.016158" level="INFO">@{expected_values} = [ "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-17T23:16:02.015307" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:02.016965" elapsed="0.000365"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:02.016405" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:02.016360" elapsed="0.001105"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:02.034003" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:02.034304" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:02.034501" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:02.023033" elapsed="0.011521"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:02.035329" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:02.034754" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:02.036702" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:02.035915" elapsed="0.000892"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:02.035500" elapsed="0.001396"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:02.034713" 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-17T23:16:02.037244" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:02.039716" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:02.038246" elapsed="0.001740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:02.037961" elapsed="0.002177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:02.037700" elapsed="0.002561">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:02.022157" elapsed="0.018308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:02.014356" elapsed="0.026333">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:04.043377" level="INFO">@{expected_values} = [ "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-17T23:16:04.042523" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:04.044193" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:04.043657" elapsed="0.001015"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:04.043609" elapsed="0.001118"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:04.060879" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:04.061172" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:04.061370" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:04.050262" elapsed="0.011164"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:04.062196" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:04.061619" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:04.063547" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:04.062768" elapsed="0.000919"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:04.062369" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:04.061546" elapsed="0.002257"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:04.064285" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:04.066379" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:04.065361" elapsed="0.001177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:04.065071" elapsed="0.001651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:04.064745" elapsed="0.002125">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:04.049394" elapsed="0.017683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:04.041565" elapsed="0.025707">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:06.069982" level="INFO">@{expected_values} = [ "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-17T23:16:06.069135" 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-17T23:16:06.070764" elapsed="0.000388"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:06.070228" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:06.070182" elapsed="0.001105"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:06.087534" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:06.087999" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:06.088228" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:06.077281" elapsed="0.011003"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:06.089059" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:06.088445" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:06.090521" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:06.089734" elapsed="0.000935"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:06.089324" elapsed="0.001419"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:06.088404" elapsed="0.002384"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:06.091188" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:06.093248" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:06.092197" elapsed="0.001202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:06.091906" elapsed="0.001643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:06.091643" elapsed="0.002065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:06.076405" elapsed="0.017533">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:06.068195" elapsed="0.025940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:08.096750" level="INFO">@{expected_values} = [ "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-17T23:16:08.095938" elapsed="0.000880"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:08.097507" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:08.097012" elapsed="0.001016"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:08.096965" elapsed="0.001119"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:08.114025" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:08.114321" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:08.114646" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:08.103699" elapsed="0.011005"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:08.115452" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:08.114896" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:08.116854" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:08.116043" elapsed="0.000920"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:08.115655" elapsed="0.001379"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:08.114854" 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-17T23:16:08.117385" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:08.119396" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:08.118390" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:08.118103" elapsed="0.001634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:08.117863" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:08.102818" elapsed="0.017272">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:08.095022" elapsed="0.025259">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:10.123521" level="INFO">@{expected_values} = [ "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-17T23:16:10.122119" elapsed="0.001501"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:10.124323" elapsed="0.000398"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:10.123801" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:10.123755" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:10.141464" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:10.141923" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:10.142145" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:10.130653" elapsed="0.011547"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:10.142967" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:10.142362" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:10.144340" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:10.143503" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:10.143138" elapsed="0.001400"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:10.142320" 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-17T23:16:10.144955" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:10.147020" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:10.145991" elapsed="0.001181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:10.145651" elapsed="0.001671">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:10.145382" elapsed="0.002068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:10.129779" elapsed="0.017911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:10.121193" elapsed="0.026723">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:12.150560" level="INFO">@{expected_values} = [ "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-17T23:16:12.149751" 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-17T23:16:12.151356" elapsed="0.000518"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:12.150852" elapsed="0.001106"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:12.150789" elapsed="0.001224"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:12.167640" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:12.167956" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:12.168161" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:12.157610" elapsed="0.010606"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:12.169007" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:12.168381" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:12.170397" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:12.169549" elapsed="0.000955"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:12.169181" elapsed="0.001427"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:12.168338" elapsed="0.002318"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:12.170985" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:12.173079" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:12.172056" elapsed="0.001178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:12.171681" elapsed="0.001703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:12.171413" elapsed="0.002094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:12.156720" elapsed="0.017036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:12.148853" elapsed="0.025123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:14.177275" level="INFO">@{expected_values} = [ "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-17T23:16:14.176448" 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-17T23:16:14.178068" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:14.177512" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:14.177467" elapsed="0.001130"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:14.193803" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:14.194123" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:14.194341" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:14.184137" elapsed="0.010258"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:14.195162" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:14.194552" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:14.196514" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:14.195728" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:14.195332" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:14.194513" 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-17T23:16:14.197091" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:14.199096" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:14.198089" elapsed="0.001160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:14.197780" elapsed="0.001615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:14.197515" elapsed="0.002003">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:14.183256" elapsed="0.016498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:14.175600" elapsed="0.024466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:16.202732" level="INFO">@{expected_values} = [ "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-17T23:16:16.201906" 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-17T23:16:16.203497" elapsed="0.000421"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:16.202996" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:16.202949" elapsed="0.001106"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:16.219175" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:16.219475" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:16.219710" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:16.209560" 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-17T23:16:16.220604" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:16.219953" elapsed="0.000777"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:16.221993" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:16.221166" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:16.220781" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:16.219910" elapsed="0.002302"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:16.222513" elapsed="0.000370"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:16.225079" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:16.223527" elapsed="0.001709">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:16.223238" elapsed="0.002152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:16.222997" elapsed="0.002519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:16.208714" elapsed="0.017169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:16.200984" elapsed="0.025104">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:18.228855" level="INFO">@{expected_values} = [ "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-17T23:16:18.227994" 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-17T23:16:18.229639" elapsed="0.000400"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:18.229103" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:18.229054" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:18.245260" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:18.245557" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:18.245809" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:18.235789" elapsed="0.010100"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:18.246639" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:18.246053" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:18.248021" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:18.247203" elapsed="0.000923"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:18.246811" elapsed="0.001383"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:18.246011" 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-17T23:16:18.248545" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:18.250601" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:18.249555" elapsed="0.001204">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:18.249270" elapsed="0.001661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:18.249030" elapsed="0.002119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:18.234895" elapsed="0.016466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:18.227026" elapsed="0.024531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:20.254270" level="INFO">@{expected_values} = [ "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-17T23:16:20.253423" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:20.255077" elapsed="0.000363"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:20.254513" elapsed="0.001007"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:20.254468" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:20.271762" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:20.272097" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:20.272337" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:20.261625" elapsed="0.010768"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:20.273239" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:20.272607" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:20.274668" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:20.273818" elapsed="0.000958"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:20.273413" elapsed="0.001456"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:20.272523" elapsed="0.002392"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:20.275223" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:20.277265" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:20.276244" elapsed="0.001174">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:20.275951" elapsed="0.001743">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:20.275680" elapsed="0.002168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:20.260740" elapsed="0.017321">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:20.252491" elapsed="0.025768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:22.280985" level="INFO">@{expected_values} = [ "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-17T23:16:22.280137" 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-17T23:16:22.281751" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:22.281226" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:22.281180" elapsed="0.001090"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:22.297052" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:22.297337" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:22.297537" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:22.287920" 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-17T23:16:22.298357" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:22.297786" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:22.299743" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:22.298949" elapsed="0.000921"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:22.298525" elapsed="0.001417"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:22.297745" elapsed="0.002242"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:22.300295" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:22.302386" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:22.301370" elapsed="0.001306">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:22.301073" elapsed="0.001803">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:22.300777" elapsed="0.002228">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:22.287041" elapsed="0.016172">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:22.279172" elapsed="0.024241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:24.306513" level="INFO">@{expected_values} = [ "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-17T23:16:24.305143" elapsed="0.001468"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:24.307327" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:24.306789" elapsed="0.001018"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:24.306742" elapsed="0.001145"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:24.323722" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:24.324031" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:24.324252" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:24.313391" elapsed="0.010917"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:24.325083" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:24.324469" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:24.326436" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:24.325651" elapsed="0.000890"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:24.325255" elapsed="0.001389"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:24.324428" 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-17T23:16:24.327105" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:24.329142" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:24.328123" elapsed="0.001168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:24.327806" elapsed="0.001633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:24.327534" elapsed="0.002030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:24.312517" elapsed="0.017287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:24.304245" elapsed="0.025780">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:26.332631" level="INFO">@{expected_values} = [ "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-17T23:16:26.331797" 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-17T23:16:26.333390" elapsed="0.000391"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:26.332895" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:26.332848" elapsed="0.001093"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:26.349327" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:26.349652" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:26.349874" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:26.339416" elapsed="0.010514"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:26.350668" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:26.350091" elapsed="0.000693"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:26.352145" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:26.351322" elapsed="0.000984"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:26.350947" elapsed="0.001431"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:26.350049" elapsed="0.002376"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:26.352772" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:26.354798" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:26.353783" elapsed="0.001193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:26.353461" elapsed="0.001665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:26.353224" elapsed="0.002029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:26.338545" elapsed="0.016913">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:26.330921" elapsed="0.024766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:28.358982" level="INFO">@{expected_values} = [ "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-17T23:16:28.358150" 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-17T23:16:28.359750" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:28.359222" elapsed="0.001024"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:28.359175" elapsed="0.001125"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:28.376733" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:28.377052" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:28.377377" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:28.365801" elapsed="0.011633"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:28.378278" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:28.377665" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:28.379694" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:28.378872" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:28.378451" elapsed="0.001443"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:28.377565" elapsed="0.002377"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:28.380247" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:28.382371" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:28.381282" elapsed="0.001240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:28.380990" elapsed="0.001714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:28.380706" elapsed="0.002142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:28.364945" elapsed="0.018110">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:28.357222" elapsed="0.026027">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:30.385990" level="INFO">@{expected_values} = [ "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-17T23:16:30.385139" 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-17T23:16:30.386759" elapsed="0.000386"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:30.386233" elapsed="0.000991"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:30.386187" elapsed="0.001093"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:30.402432" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:30.402900" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:30.403105" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:30.392760" elapsed="0.010402"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:30.403924" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:30.403322" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:30.405267" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:30.404455" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:30.404092" elapsed="0.001348"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:30.403281" elapsed="0.002203"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:30.405845" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:30.408504" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:30.406957" elapsed="0.001766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:30.406606" elapsed="0.002301">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:30.406328" elapsed="0.002711">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:30.391911" elapsed="0.017335">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:30.384190" elapsed="0.025245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:32.412215" level="INFO">@{expected_values} = [ "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-17T23:16:32.411355" elapsed="0.000928"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:32.413020" elapsed="0.000471"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:32.412461" elapsed="0.001144"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:32.412413" elapsed="0.001253"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:32.428857" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:32.429145" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:32.429340" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:32.419369" elapsed="0.010026"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:32.430161" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:32.429552" elapsed="0.000725"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:32.431514" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:32.430729" elapsed="0.000922"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:32.430330" elapsed="0.001392"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:32.429511" 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-17T23:16:32.432093" elapsed="0.000309"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:32.434107" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:32.433100" elapsed="0.001159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:32.432783" elapsed="0.001621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:32.432512" elapsed="0.002017">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:32.418368" elapsed="0.016403">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:32.410356" elapsed="0.024637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not 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-17T23:16:34.437712" level="INFO">@{expected_values} = [ "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-17T23:16:34.436890" 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-17T23:16:34.438475" elapsed="0.000422"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:34.437977" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:34.437929" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:34.454716" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node05up9138x7yrw1esyjzln096s3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:34.455038" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:34.455256" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:34.444994" elapsed="0.010319"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:34.456074" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:34.455473" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:34.457423" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:34.456642" elapsed="0.000885"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:34.456242" elapsed="0.001387"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:34.455432" 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-17T23:16:34.458006" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:34.460022" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:34.459012" elapsed="0.001167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:34.458697" elapsed="0.001627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-10-17T23:16:34.458429" elapsed="0.002019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-10-17T23:16:34.444119" elapsed="0.016565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"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-17T23:16:34.435976" elapsed="0.025018">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-10-17T23:16:34.461178" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:15:03.241059" elapsed="91.220329">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:34.461859" elapsed="0.000048"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:34.463759" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:16:34.782695" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:16:34.783011" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:16:34.783108" 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-17T23:16:34.783196" 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-17T23:16:34.463381" elapsed="0.319869"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:34.784420" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:34.783800" elapsed="0.000715"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:34.785318" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:16:35.122945" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:16:35.123229" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:16:35.123321" 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-17T23:16:35.123434" 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-17T23:16:34.784972" elapsed="0.338520"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.124648" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:16:35.207523" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:16:35.207810" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:16:35.207931" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:16:35.208012" 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-17T23:16:35.124229" elapsed="0.083830"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.208703" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:16:35.257107" 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-17T23:16:35.208468" elapsed="0.048778"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:35.272110" level="INFO">DELETE Request : url=http://10.30.171.120: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=node05up9138x7yrw1esyjzln096s3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:35.272208" level="INFO">DELETE Response : url=http://10.30.171.120: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-17T23:16:35.272391" 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-17T23:16:35.257607" elapsed="0.014838"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:35.281195" level="INFO">DELETE Request : url=http://10.30.171.120: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=node05up9138x7yrw1esyjzln096s3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:35.281468" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:16:35.281816" 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-17T23:16:35.272803" elapsed="0.009093"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:16:34.462495" elapsed="0.819541"/>
</kw>
<doc>CallHome SSH device registered with wrong global credentials should fail to mount.</doc>
<status status="FAIL" start="2026-10-17T23:15:02.501657" elapsed="92.780474">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDXcquZAfwSSRAqE6CdEUTcmSKEy1cesEoWJnXyv5Qdha65IHkwtTury5I30deusBS5rxiKl+h8/Fi945Q48yi6jp6mH87Rm12g+Z/gjd3T0RtGw47NEVxKSpdjRkRmddCR87rLx/bt29q7OdhQYOvOy8OG6i5Wyj7eiz/YeNFiFDJpBl8GYQzbbcF1W5LTfPuMSi7nRI688nYNK81fNBKQvrQVFsfTbUwnTf5JcuEaix3u+gSn/x04xkpHJ9f9akBgyKHwla2eQ1hAfRVXtJkutO60imHOkEUj9Q0p1QKNgEYDYh+V9W6XLT7PfE2qa6Aozr1r+h6j5iU8Oz2TuC5X"}}]}}}' 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-17T23:16:35.286390" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab4f795c10&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-17T23:16:35.285959" elapsed="0.000927"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.287477" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:16:35.304640" 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-17T23:16:35.287279" elapsed="0.017486"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.305368" 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-17T23:16:35.589908" 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-17T23:16:35.305171" elapsed="0.284903"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.590789" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:16:35.637077" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:16:35.637331" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCvDARA+sm9WEotkOkz0sFQx43jvJi7d8ikqfIvZgFfQCGG+sefY5fjXZX8jPKxDGvf/saV7o0fI17gQdK/vukQv1nfQIuX8cC0EeJw/fqG0EygJ8upzyWbPDxduhpgeYGyoHmXTMQhdU6rJFx3kMZLGiKZGnyuoHgyyIMFdL6v...</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-17T23:16:35.590507" elapsed="0.046890"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:16:35.641634" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCvDARA+sm9WEotkOkz0sFQx43jvJi7d8ikqfIvZgFfQCGG+sefY5fjXZX8jPKxDGvf/saV7o0fI17gQdK/vukQv1nfQIuX8cC0EeJw/fqG0EygJ8upzyWbPDxduhpgeYGyoHmXTMQhdU6rJFx3kMZLGiKZGnyuoHgyyIMFdL6v...</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-17T23:16:35.637871" elapsed="0.003866"/>
</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-17T23:16:35.285236" elapsed="0.356653"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.682437" 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-17T23:16:35.642932" elapsed="0.039686"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.693541" 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-17T23:16:35.683046" elapsed="0.010653"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-17T23:16:35.642239" elapsed="0.051619"/>
</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-17T23:16:35.695760" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:35.695130" elapsed="0.000766"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:16:35.697165" 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-17T23:16:35.697451" 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-17T23:16:35.696878" elapsed="0.000629"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:16:35.698623" 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-17T23:16:35.697918" elapsed="0.000887"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:35.696234" elapsed="0.002709"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:35.695954" elapsed="0.003038"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:35.695080" elapsed="0.003955"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.699814" 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-17T23:16:35.699348" elapsed="0.000552"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.700664" 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-17T23:16:35.700230" elapsed="0.000491"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.701472" 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-17T23:16:35.701071" elapsed="0.000456"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.702309" 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-17T23:16:35.701906" elapsed="0.000459"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:35.729239" level="INFO">POST Request : url=http://10.30.171.120: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:16:35.729358" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01hnfzyxgy6h2gtd7ye92yhi3v4.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:16:35 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.120: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-17T23:16:35.729561" 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-17T23:16:35.702690" elapsed="0.026960"/>
</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-17T23:16:35.730032" elapsed="0.000832"/>
</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-17T23:16:35.694369" elapsed="0.036624"/>
</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-17T23:16:35.733807" 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-17T23:16:35.734095" 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-17T23:16:35.733468" elapsed="0.000682"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:16:35.735172" 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-17T23:16:35.734488" elapsed="0.000772"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:35.732863" elapsed="0.002506"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:35.732270" elapsed="0.003148"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-10-17T23:16:35.735798" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:35.735471" elapsed="0.000448"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:35.732231" elapsed="0.003732"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.736719" 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-17T23:16:35.736268" elapsed="0.000508"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.737522" 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-17T23:16:35.737122" elapsed="0.000549"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.738425" 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-17T23:16:35.738023" elapsed="0.000456"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:35.739263" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCvDARA+sm9WEotkOkz0sFQx43jvJi7d8ikqfIvZgFfQCGG+sefY5fjXZX8jPKx...</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-17T23:16:35.738863" elapsed="0.000456"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:35.753465" level="INFO">POST Request : url=http://10.30.171.120: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=node01hnfzyxgy6h2gtd7ye92yhi3v4.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCvDARA+sm9WEotkOkz0sFQx43jvJi7d8ikqfIvZgFfQCGG+sefY5fjXZX8jPKxDGvf/saV7o0fI17gQdK/vukQv1nfQIuX8cC0EeJw/fqG0EygJ8upzyWbPDxduhpgeYGyoHmXTMQhdU6rJFx3kMZLGiKZGnyuoHgyyIMFdL6v4u0474Y5pNYoiDsNEY8IP3LNu0MRQ63YxvwnTjQi33byyClA1OS2/8cKrcb3YKgySbSzWcaepRLkFZt2/BU/HqsM/TQBR4az7JUaNKj4HCvEj9VPX/wS5iKZDI2FrJJ2cct2+cVnTc3eklCLfg2c/2YOHR77SAJYXaitIRYF2mUB"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:16:35.753609" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:35.753793" 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-17T23:16:35.739645" elapsed="0.014224"/>
</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-17T23:16:35.754220" elapsed="0.000825"/>
</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-17T23:16:35.731474" elapsed="0.023699"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:35.755951" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-17T23:16:36.073060" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:16:36.073357" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:16:36.073449" 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-17T23:16:36.073532" 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-17T23:16:35.755543" elapsed="0.318073"/>
</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-17T23:16:36.079645" 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-17T23:16:36.078906" 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-17T23:16:36.080387" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:36.079892" elapsed="0.000613"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:36.079845" elapsed="0.000714"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:36.095636" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01hnfzyxgy6h2gtd7ye92yhi3v4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:36.095971" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvDARA+sm9WEotkOkz0sFQx43jvJi7d8ikqfIvZgFfQCGG+sefY5fjXZX8jPKxDGvf/saV7o0fI17gQdK/vukQv1nfQIuX8cC0EeJw/fqG0EygJ8upzyWbPDxduhpgeYGyoHmXTMQhdU6rJFx3kMZLGiKZGnyuoHgyyIMFdL6v4u0474Y5pNYoiDsNEY8IP3LNu0MRQ63YxvwnTjQi33byyClA1OS2/8cKrcb3YKgySbSzWcaepRLkFZt2/BU/HqsM/TQBR4az7JUaNKj4HCvEj9VPX/wS5iKZDI2FrJJ2cct2+cVnTc3eklCLfg2c/2YOHR77SAJYXaitIRYF2mUB"}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:36.096197" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:36.086108" elapsed="0.010144"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:36.097115" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:36.096412" elapsed="0.000822"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:36.098483" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCvDARA+sm9WEotkOkz0sFQx43jvJi7d8ikqfIvZgFfQCGG+sefY5fjXZX8jPKxDGvf/saV7o0fI17gQdK/vukQv1nfQIuX8cC0EeJw/fqG0EygJ8upzyWbPDxduhpgeYGyoHmXTMQhdU6rJFx3kMZLGiKZGnyuoHgyyIMFdL6v4u0474Y5pNYoiDsNEY8IP3LNu0MRQ63YxvwnTjQi33byyClA1OS2/8cKrcb3YKgySbSzWcaepRLkFZt2/BU/HqsM/TQBR4az7JUaNKj4HCvEj9VPX/wS5iKZDI2FrJJ2cct2+cVnTc3eklCLfg2c/2YOHR77SAJYXaitIRYF2mUB"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:36.097680" elapsed="0.000951"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:36.097285" elapsed="0.001417"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:36.096371" elapsed="0.002376"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:36.099070" 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-17T23:16:36.100083" elapsed="0.000948"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-10-17T23:16:36.099769" elapsed="0.001342"/>
</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-17T23:16:36.101598" elapsed="0.000895"/>
</kw>
<var name="${i}">"device-status":"DISCONNECTED"</var>
<status status="PASS" start="2026-10-17T23:16:36.101274" elapsed="0.001330"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="PASS" start="2026-10-17T23:16:36.099495" elapsed="0.003174"/>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET 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-17T23:16:36.085227" elapsed="0.017558"/>
</kw>
<arg>DISCONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="PASS" start="2026-10-17T23:16:36.078116" elapsed="0.024801"/>
</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-17T23:16:36.074119" elapsed="0.028892"/>
</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-17T23:16:36.143295" level="INFO">GET Request : url=http://10.30.171.120: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=node01hnfzyxgy6h2gtd7ye92yhi3v4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:36.143551" level="INFO">GET Response : url=http://10.30.171.120: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-17T23:16:36.143803" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:36.110458" elapsed="0.033423"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:36.144617" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:36.144040" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:36.145982" 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-17T23:16:36.145174" elapsed="0.000918"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:36.144788" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:36.143999" 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-17T23:16:36.146507" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:36.148488" 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-17T23:16:36.147484" elapsed="0.001266">'{"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-17T23:16:36.147200" elapsed="0.001731">'{"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-17T23:16:36.146973" elapsed="0.002090">'{"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-17T23:16:36.109618" elapsed="0.039656">'{"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-17T23:16:36.104497" elapsed="0.045180"/>
</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-17T23:16:36.103386" elapsed="0.046406"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:36.151493" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:16:36.469042" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:16:36.469335" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:16:36.469429" 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-17T23:16:36.469516" 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-17T23:16:36.151150" elapsed="0.318461"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:36.470766" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:16:36.470135" elapsed="0.000742"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:36.471642" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:16:36.814863" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:16:36.815172" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:16:36.815266" 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-17T23:16:36.815351" 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-17T23:16:36.471261" elapsed="0.344140"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:36.816349" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:16:36.891122" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:16:36.891368" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:16:36.891461" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:16:36.891542" 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-17T23:16:36.815946" elapsed="0.075781"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:36.892389" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:16:36.940798" 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-17T23:16:36.892181" elapsed="0.048789"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:36.954355" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01hnfzyxgy6h2gtd7ye92yhi3v4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:36.954452" level="INFO">DELETE Response : url=http://10.30.171.120: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-17T23:16:36.954709" 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-17T23:16:36.941295" elapsed="0.013473"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:36.962959" level="INFO">DELETE Request : url=http://10.30.171.120: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=node01hnfzyxgy6h2gtd7ye92yhi3v4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:36.963230" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:16:36.963443" 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-17T23:16:36.955106" elapsed="0.008390"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:16:36.150356" elapsed="0.813321"/>
</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-17T23:16:35.283329" elapsed="1.680440"/>
</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-17T23:16:36.967101" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab509a0610&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-17T23:16:36.966563" elapsed="0.000860"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:36.968061" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:16:36.988606" 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-17T23:16:36.967861" elapsed="0.020878"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:36.989352" 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-17T23:16:37.182419" 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-17T23:16:36.989149" elapsed="0.193500"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:37.183414" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:16:37.232861" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:16:37.233095" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC4iY3T3/gh5wnqXUHnS5LIl51uozvqt8yJHzUPjzLkGg8AN40z0a5TZK7sAsJedhOLogt5vTO7+x+Rg6/0KXsbidc5Kmro/DGu4fX7VkqHSxgnDEuSG1WxSt4A/eGfJn0PG9pg+7ZOxTFEcDJxTiiYW3XvyfXUUPSmZABRUAbN...</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-17T23:16:37.183157" elapsed="0.049996"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:16:37.237211" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC4iY3T3/gh5wnqXUHnS5LIl51uozvqt8yJHzUPjzLkGg8AN40z0a5TZK7sAsJedhOLogt5vTO7+x+Rg6/0KXsbidc5Kmro/DGu4fX7VkqHSxgnDEuSG1WxSt4A/eGfJn0PG9pg+7ZOxTFEcDJxTiiYW3XvyfXUUPSmZABRUAbN...</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-17T23:16:37.233557" elapsed="0.003756"/>
</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-17T23:16:36.965861" elapsed="0.271591"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:16:37.283397" 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-17T23:16:37.238608" elapsed="0.044918"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:16:37.295959" 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-17T23:16:37.283982" elapsed="0.012209"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-10-17T23:16:37.237897" elapsed="0.058425"/>
</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-17T23:16:37.298301" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:37.297653" elapsed="0.000760"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:16:37.299719" 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-17T23:16:37.300035" 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-17T23:16:37.299417" elapsed="0.000675"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:16:37.301163" 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-17T23:16:37.300452" elapsed="0.000801"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:37.298796" elapsed="0.002569"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:37.298473" elapsed="0.002941"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:37.297598" elapsed="0.003861"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:37.302308" 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-17T23:16:37.301858" elapsed="0.000508"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:37.303178" 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-17T23:16:37.302735" elapsed="0.000498"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:37.304023" 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-17T23:16:37.303560" elapsed="0.000518"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:16:37.304868" 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-17T23:16:37.304408" elapsed="0.000519"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:37.326132" level="INFO">POST Request : url=http://10.30.171.120: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN"
        }
    }
}
 
 </msg>
<msg time="2026-10-17T23:16:37.326259" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:16:37 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:37.326460" 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-17T23:16:37.305228" elapsed="0.021287"/>
</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-17T23:16:37.326957" elapsed="0.000880"/>
</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-17T23:16:37.296914" elapsed="0.031062"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:16:37.328750" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-10-17T23:16:37.645915" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:16:37.646207" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:16:37.646298" 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-17T23:16:37.646484" 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-17T23:16:37.328373" elapsed="0.318163"/>
</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-17T23:16:37.650632" 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-17T23:16:37.649814" 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="PASS" start="2026-10-17T23:16:37.651375" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:37.650877" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:37.650809" elapsed="0.001121"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:37.667024" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:37.667313" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:37.667533" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:37.657678" elapsed="0.009944"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:37.668363" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:37.667783" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:37.669776" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:37.668954" elapsed="0.000957"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:37.668533" elapsed="0.001450"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:37.667742" 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-17T23:16:37.670333" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:37.672367" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:37.671347" elapsed="0.001175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:37.671059" elapsed="0.001647">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:37.670794" elapsed="0.002056">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:37.656767" elapsed="0.016365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:37.649009" elapsed="0.024324">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:39.676214" 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-17T23:16:39.675330" elapsed="0.000957"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:39.677041" elapsed="0.000373"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:39.676473" elapsed="0.001023"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:39.676422" elapsed="0.001131"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:39.693003" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:39.693302" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:39.693499" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:39.683175" elapsed="0.010378"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:39.694322" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:39.693748" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:39.695690" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:39.694903" elapsed="0.000892"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:39.694488" elapsed="0.001398"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:39.693706" 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-17T23:16:39.696237" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:39.698845" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:39.697750" elapsed="0.001255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:39.696967" elapsed="0.002205">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:39.696696" elapsed="0.002705">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:39.682311" elapsed="0.017334">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:39.674332" elapsed="0.025531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:41.702713" 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-17T23:16:41.701875" 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-17T23:16:41.703489" elapsed="0.000428"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:41.702985" elapsed="0.001015"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:41.702936" elapsed="0.001120"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:41.719809" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:41.720133" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:41.720334" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:41.709662" elapsed="0.010728"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:41.721171" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:41.720554" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:41.722529" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:41.721737" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:41.721343" elapsed="0.001396"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:41.720511" 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-17T23:16:41.723114" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:41.725403" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:41.724297" elapsed="0.001264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:41.723984" elapsed="0.001911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:41.723617" elapsed="0.002421">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:41.708780" elapsed="0.017473">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:41.700906" elapsed="0.025547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:43.729074" 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-17T23:16:43.728218" 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-17T23:16:43.729965" elapsed="0.000370"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:43.729317" elapsed="0.001100"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:43.729271" elapsed="0.001201"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:43.746245" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:43.746530" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:43.746795" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:43.736466" elapsed="0.010406"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:43.747622" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:43.747036" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:43.749013" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:43.748186" elapsed="0.000934"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:43.747795" elapsed="0.001396"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:43.746994" 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-17T23:16:43.749541" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:43.751555" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:43.750547" elapsed="0.001325">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:43.750258" elapsed="0.001768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:43.750022" elapsed="0.002129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:43.735616" elapsed="0.016768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:43.727285" elapsed="0.025330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:45.755305" 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-17T23:16:45.754437" 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-17T23:16:45.756088" elapsed="0.000361"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:45.755542" elapsed="0.000987"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:45.755496" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:45.771909" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:45.772198" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:45.772395" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:45.762173" elapsed="0.010277"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:45.774203" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:45.773615" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:45.775700" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:45.774767" elapsed="0.001159"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:45.774373" elapsed="0.001627"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:45.773545" elapsed="0.002501"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:45.776353" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:45.778387" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:45.777361" elapsed="0.001182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:45.777076" elapsed="0.001653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:45.776814" elapsed="0.002107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:45.761299" elapsed="0.017836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:45.753490" elapsed="0.025858">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:47.782639" 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-17T23:16:47.781206" elapsed="0.001502"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:47.783419" elapsed="0.000422"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:47.782913" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:47.782864" elapsed="0.001115"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:47.798226" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:47.798511" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:47.798885" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:47.789476" elapsed="0.009467"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:47.799689" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:47.799105" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:47.801075" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:47.800251" elapsed="0.000931"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:47.799884" elapsed="0.001369"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:47.799064" elapsed="0.002235"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:47.801636" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:47.803674" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:47.802656" elapsed="0.001193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:47.802333" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:47.802092" elapsed="0.002034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:47.788629" elapsed="0.015701">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:47.780276" elapsed="0.024253">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:49.807265" 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-17T23:16:49.806413" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:49.808150" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:49.807507" elapsed="0.001122"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:49.807461" elapsed="0.001224"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:49.824191" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:49.824481" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:49.824718" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:49.814280" elapsed="0.010494"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:49.825508" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:49.824960" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:49.826915" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:49.826109" elapsed="0.000911"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:49.825710" elapsed="0.001380"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:49.824918" 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-17T23:16:49.827436" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:49.829456" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:49.828441" elapsed="0.001200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:49.828149" elapsed="0.001643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:49.827913" elapsed="0.002036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:49.813406" elapsed="0.016754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:49.805459" elapsed="0.024898">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:51.833757" 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-17T23:16:51.832926" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:51.834524" elapsed="0.000421"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:51.834024" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:51.833976" elapsed="0.001106"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:51.850063" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:51.850348" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:51.850596" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:51.840553" 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-17T23:16:51.851394" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:51.850840" elapsed="0.000675"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:51.852792" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:51.851988" elapsed="0.000937"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:51.851597" elapsed="0.001398"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:51.850778" 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-17T23:16:51.853344" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:51.855480" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:51.854346" elapsed="0.001330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:51.854056" elapsed="0.001794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:51.853799" elapsed="0.002177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:51.839709" elapsed="0.016472">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:51.832005" elapsed="0.024459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:53.859112" 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-17T23:16:53.858270" 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-17T23:16:53.859908" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:53.859355" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:53.859309" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:53.876083" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:53.876368" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:53.876597" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:53.865916" elapsed="0.010746"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:53.877396" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:53.876847" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:53.878763" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:53.877975" elapsed="0.000917"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:53.877563" elapsed="0.001399"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:53.876783" 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-17T23:16:53.879306" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:53.881905" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:53.880300" elapsed="0.001762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:53.880012" elapsed="0.002201">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:53.879757" elapsed="0.002583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:53.865038" elapsed="0.017631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:53.857337" elapsed="0.025555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:55.885656" 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-17T23:16:55.884804" elapsed="0.000922"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:55.886424" elapsed="0.000454"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:55.885922" elapsed="0.001040"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:55.885874" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:55.902272" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:55.902612" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:55.902844" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:55.892647" elapsed="0.010255"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:55.903657" elapsed="0.000058"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:55.903062" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:55.905025" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:55.904217" elapsed="0.000913"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:55.903853" elapsed="0.001344"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:55.903021" elapsed="0.002221"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:55.905544" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:55.907555" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:55.906547" elapsed="0.001196">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:55.906258" elapsed="0.001652">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:55.906020" elapsed="0.002113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:55.891769" elapsed="0.016577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:55.883867" elapsed="0.024673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:57.911372" 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-17T23:16:57.910498" 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-17T23:16:57.912211" elapsed="0.000682"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:57.911659" elapsed="0.001378"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:57.911608" elapsed="0.001521"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:57.928652" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:57.928983" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:57.929212" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:57.919397" 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-17T23:16:57.930048" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:57.929431" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:57.931416" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:57.930607" elapsed="0.000915"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:57.930214" elapsed="0.001409"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:57.929390" 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-17T23:16:57.931993" elapsed="0.000310"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:57.934023" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:57.932999" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:57.932687" elapsed="0.001733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:57.932416" elapsed="0.002135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:57.918491" elapsed="0.016302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:57.909480" elapsed="0.025574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:59.937973" 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-17T23:16:59.937098" elapsed="0.000945"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:16:59.938760" elapsed="0.000388"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:59.938228" elapsed="0.001002"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:59.938178" elapsed="0.001106"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:16:59.953976" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:16:59.954274" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:16:59.954473" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:16:59.944850" elapsed="0.009675"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:16:59.955287" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:16:59.954720" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:16:59.956660" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:16:59.955869" elapsed="0.000898"/>
</kw>
<status status="PASS" start="2026-10-17T23:16:59.955452" elapsed="0.001411"/>
</branch>
<status status="PASS" start="2026-10-17T23:16:59.954679" elapsed="0.002230"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:16:59.957214" elapsed="0.000307"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:16:59.959233" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:59.958229" elapsed="0.001255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:59.957935" elapsed="0.001734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:59.957665" elapsed="0.002132">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:59.943968" elapsed="0.016107">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:59.936052" elapsed="0.024217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:01.963670" 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-17T23:17:01.962188" elapsed="0.001555"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:01.964489" elapsed="0.000446"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:01.963951" elapsed="0.001068"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:01.963901" elapsed="0.001175"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:01.980554" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:01.980965" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:01.981200" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:01.970902" elapsed="0.010355"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:01.982082" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:01.981426" elapsed="0.000777"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:01.983494" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:01.982659" elapsed="0.001078"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:01.982254" elapsed="0.001604"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:01.981381" elapsed="0.002534"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:01.984228" elapsed="0.000324"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:01.986360" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:01.985292" elapsed="0.001225">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:01.984988" elapsed="0.001718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:01.984702" elapsed="0.002165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:01.969971" elapsed="0.017134">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:01.961212" elapsed="0.026094">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:03.990154" 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-17T23:17:03.989301" 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-17T23:17:03.990955" elapsed="0.000364"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:03.990402" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:03.990356" elapsed="0.001099"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:04.006712" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:04.007032" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:04.007339" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:03.997563" elapsed="0.009833"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:04.008170" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:04.007556" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:04.009521" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:04.008738" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:04.008341" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:04.007515" 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-17T23:17:04.010110" elapsed="0.000312"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:04.012127" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:04.011116" elapsed="0.001164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:04.010803" elapsed="0.001625">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:04.010534" elapsed="0.002020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:03.996634" elapsed="0.016161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:03.988312" elapsed="0.024708">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:06.016458" 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-17T23:17:06.015543" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:06.017287" elapsed="0.000399"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:06.016735" elapsed="0.001031"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:06.016687" elapsed="0.001159"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:06.033370" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:06.033725" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:06.033988" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:06.023679" elapsed="0.010366"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:06.034872" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:06.034217" elapsed="0.000783"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:06.036269" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:06.035424" elapsed="0.000952"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:06.035053" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:06.034172" 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-17T23:17:06.036854" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:06.038983" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:06.037872" elapsed="0.001269">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:06.037527" elapsed="0.001765">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:06.037290" elapsed="0.002129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:06.022768" elapsed="0.016904">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:06.014647" elapsed="0.025248">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:08.042839" 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-17T23:17:08.041974" elapsed="0.000938"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:08.043623" elapsed="0.000392"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:08.043091" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:08.043043" elapsed="0.001106"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:08.058508" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:08.058895" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:08.059098" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:08.049709" elapsed="0.009444"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:08.059910" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:08.059311" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:08.061328" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:08.060444" elapsed="0.000992"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:08.060078" elapsed="0.001430"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:08.059270" 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-17T23:17:08.061946" elapsed="0.000321"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:08.064418" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:08.062971" elapsed="0.001631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:08.062653" elapsed="0.002101">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:08.062381" elapsed="0.002526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:08.048849" elapsed="0.016268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:08.040992" elapsed="0.024412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:10.068357" 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-17T23:17:10.067487" 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-17T23:17:10.069175" elapsed="0.000367"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:10.068645" elapsed="0.001011"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:10.068564" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:10.085054" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:10.085341" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:10.085539" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:10.075347" elapsed="0.010279"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:10.086359" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:10.085787" elapsed="0.000689"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:10.087752" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:10.086950" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:10.086527" elapsed="0.001428"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:10.085746" elapsed="0.002254"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:10.088305" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:10.090336" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:10.089318" elapsed="0.001171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:10.089026" elapsed="0.001648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:10.088764" elapsed="0.002038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:10.074461" elapsed="0.016658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:10.066451" elapsed="0.024871">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:12.094127" 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-17T23:17:12.093282" elapsed="0.000915"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:12.094909" elapsed="0.000357"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:12.094369" elapsed="0.000976"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:12.094323" elapsed="0.001076"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:12.112493" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:12.112841" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:12.113060" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:12.103481" elapsed="0.009634"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:12.113867" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:12.113272" elapsed="0.000712"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:12.115197" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:12.114398" elapsed="0.000902"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:12.114035" elapsed="0.001334"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:12.113232" elapsed="0.002182"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:12.115748" elapsed="0.000327"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:12.117712" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:12.116728" elapsed="0.001155">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:12.116411" elapsed="0.001619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:12.116183" elapsed="0.002055">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:12.102612" elapsed="0.015836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:12.092320" elapsed="0.026355">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:14.121393" 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-17T23:17:14.120556" 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-17T23:17:14.122182" elapsed="0.000356"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:14.121667" elapsed="0.000979"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:14.121620" elapsed="0.001082"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:14.137965" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:14.138254" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:14.138455" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:14.128314" elapsed="0.010194"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:14.139299" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:14.138710" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:14.140688" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:14.139888" elapsed="0.000906"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:14.139465" elapsed="0.001420"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:14.138667" 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-17T23:17:14.141232" elapsed="0.000306"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:14.143226" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:14.142225" elapsed="0.001152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:14.141936" elapsed="0.001721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:14.141680" elapsed="0.002109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:14.127380" elapsed="0.016640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:14.119605" elapsed="0.024613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:16.147796" 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-17T23:17:16.146249" elapsed="0.001685"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:16.148520" elapsed="0.000271"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:16.148130" elapsed="0.000727"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:16.148078" elapsed="0.000815"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:16.159994" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:16.160192" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:16.160329" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:16.152308" elapsed="0.008055"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:16.160854" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:16.160464" elapsed="0.000465"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:16.161699" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:16.161193" elapsed="0.000572"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:16.160962" elapsed="0.000863"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:16.160439" elapsed="0.001416"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:16.162049" elapsed="0.000199"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:16.163307" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:16.162679" elapsed="0.000782">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:16.162473" elapsed="0.001086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:16.162319" elapsed="0.001343">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:16.151774" elapsed="0.012022">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:16.145206" elapsed="0.018729">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:18.166634" 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-17T23:17:18.165794" 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-17T23:17:18.167400" elapsed="0.000396"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:18.166899" elapsed="0.000999"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:18.166852" elapsed="0.001101"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:18.182362" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:18.182691" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:18.182920" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:18.173451" elapsed="0.009525"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:18.183723" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:18.183137" elapsed="0.000731"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:18.185103" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:18.184291" elapsed="0.001007"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:18.183921" elapsed="0.001449"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:18.183097" elapsed="0.002318"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:18.185757" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:18.187781" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:18.186764" elapsed="0.001193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:18.186439" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:18.186202" elapsed="0.002029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:18.172596" elapsed="0.015840">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:18.164887" elapsed="0.023779">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:20.191952" 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-17T23:17:20.191101" elapsed="0.000920"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:20.192727" elapsed="0.000387"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:20.192197" elapsed="0.000997"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:20.192152" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:20.208180" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:20.208467" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:20.208828" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:20.198763" elapsed="0.010126"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:20.209627" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:20.209052" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:20.211011" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:20.210192" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:20.209800" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:20.209010" 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-17T23:17:20.211541" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:20.213642" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:20.212551" elapsed="0.001246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:20.212260" elapsed="0.001710">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:20.212023" elapsed="0.002077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:20.197907" elapsed="0.016398">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:20.190188" elapsed="0.024314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:22.217308" 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-17T23:17:22.216436" elapsed="0.000942"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:22.218119" elapsed="0.000362"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:22.217563" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:22.217512" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:22.233165" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:22.233450" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:22.233682" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:22.224230" elapsed="0.009510"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:22.234476" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:22.233929" elapsed="0.000698"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:22.235897" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:22.235076" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:22.234683" elapsed="0.001393"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:22.233887" 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-17T23:17:22.236446" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:22.238984" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:22.237463" elapsed="0.001677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:22.237171" elapsed="0.002121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:22.236930" elapsed="0.002489">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:22.223344" elapsed="0.016317">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:22.215429" elapsed="0.024454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:24.242683" 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-17T23:17:24.241854" 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-17T23:17:24.243450" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:24.242947" elapsed="0.001004"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:24.242900" elapsed="0.001106"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:24.258481" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:24.258834" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:24.259037" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:24.249520" elapsed="0.009572"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:24.259862" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:24.259251" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:24.261251" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:24.260422" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:24.260034" elapsed="0.001390"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:24.259212" elapsed="0.002257"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:24.261807" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:24.263832" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:24.262825" elapsed="0.001162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:24.262487" elapsed="0.001649">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:24.262251" elapsed="0.002011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:24.248672" elapsed="0.015794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:24.240902" elapsed="0.023881">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:26.267614" 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-17T23:17:26.266733" 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-17T23:17:26.268430" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:26.267896" elapsed="0.001065"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:26.267846" elapsed="0.001174"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:26.285272" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:26.285610" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:26.285872" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:26.275486" elapsed="0.010446"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:26.286722" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:26.286104" elapsed="0.000766"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:26.288193" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:26.287322" elapsed="0.000981"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:26.286927" elapsed="0.001452"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:26.286061" elapsed="0.002366"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:26.288795" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:26.290954" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:26.289875" elapsed="0.001243">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:26.289510" elapsed="0.001769">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:26.289260" elapsed="0.002151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:26.274534" elapsed="0.017230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:26.265753" elapsed="0.026255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:28.294682" 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-17T23:17:28.293865" 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-17T23:17:28.295438" elapsed="0.000417"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:28.294942" elapsed="0.000995"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:28.294896" elapsed="0.001095"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:28.310279" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:28.310617" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:28.310849" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:28.301488" elapsed="0.009417"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:28.311653" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:28.311068" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:28.313037" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:28.312220" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:28.311850" elapsed="0.001364"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:28.311027" 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-17T23:17:28.313597" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:28.315620" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:28.314611" elapsed="0.001169">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:28.314290" elapsed="0.001662">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:28.314054" elapsed="0.002117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:28.300644" elapsed="0.015742">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:28.292952" elapsed="0.023665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:30.320133" 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-17T23:17:30.318535" elapsed="0.001669"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:30.320953" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:30.320383" elapsed="0.001022"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:30.320336" elapsed="0.001124"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:30.336167" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:30.336456" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:30.336709" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:30.327046" elapsed="0.009719"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:30.337502" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:30.336951" elapsed="0.000704"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:30.338924" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:30.338103" elapsed="0.000928"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:30.337709" elapsed="0.001394"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:30.336909" 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-17T23:17:30.339457" elapsed="0.000349"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:30.341480" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:30.340469" elapsed="0.001198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:30.340181" elapsed="0.001753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:30.339943" elapsed="0.002124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:30.326160" elapsed="0.016116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:30.317556" elapsed="0.024917">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:32.345213" 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-17T23:17:32.344353" 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-17T23:17:32.346016" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:32.345463" elapsed="0.001001"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:32.345416" elapsed="0.001103"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:32.360700" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:32.361015" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:32.361217" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:32.352059" elapsed="0.009213"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:32.362043" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:32.361433" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:32.363394" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:32.362608" elapsed="0.000891"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:32.362215" elapsed="0.001385"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:32.361392" 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-17T23:17:32.363977" elapsed="0.000311"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:32.365984" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:32.364972" elapsed="0.001275">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:32.364664" elapsed="0.001736">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:32.364396" elapsed="0.002130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:32.351183" elapsed="0.015583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:32.343414" elapsed="0.023581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:34.370495" 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-17T23:17:34.369640" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:34.371307" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:34.370781" elapsed="0.001012"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:34.370731" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:34.386409" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:34.386744" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:34.386990" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:34.377419" elapsed="0.009628"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:34.387801" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:34.387211" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:34.389178" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:34.388357" elapsed="0.001020"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:34.387991" elapsed="0.001460"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:34.387170" 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-17T23:17:34.389860" elapsed="0.000317"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:34.391900" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:34.390875" elapsed="0.001183">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:34.390527" elapsed="0.001681">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:34.390288" elapsed="0.002048">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:34.376545" elapsed="0.015999">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:34.368648" elapsed="0.024129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:36.395542" 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-17T23:17:36.394670" elapsed="0.000975"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:36.396351" elapsed="0.000404"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:36.395848" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:36.395775" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:36.412900" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:36.413197" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:36.413547" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:36.403117" elapsed="0.010518"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:36.414390" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:36.413798" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:36.415875" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:36.415025" elapsed="0.000962"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:36.414559" elapsed="0.001498"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:36.413757" elapsed="0.002347"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:36.416408" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:36.419049" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:36.417423" elapsed="0.001783">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:36.417136" elapsed="0.002222">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:36.416897" elapsed="0.002591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:36.401723" elapsed="0.018008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:36.393735" elapsed="0.026216">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:38.422751" 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-17T23:17:38.421898" elapsed="0.000941"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:38.423528" elapsed="0.000422"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:38.423025" elapsed="0.001005"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:38.422974" elapsed="0.001112"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:38.439126" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:38.439415" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:38.439647" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:38.429763" elapsed="0.009940"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:38.440439" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:38.439890" elapsed="0.000665"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:38.441851" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:38.441033" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:38.440641" elapsed="0.001388"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:38.439847" 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-17T23:17:38.442447" elapsed="0.000351"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:38.444504" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:38.443489" elapsed="0.001202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:38.443174" elapsed="0.001692">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:38.442936" elapsed="0.002057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:38.428897" elapsed="0.016300">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:38.420906" elapsed="0.024486">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:40.448199" 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-17T23:17:40.447288" elapsed="0.000977"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:40.449072" elapsed="0.000381"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:40.448439" elapsed="0.001095"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:40.448393" elapsed="0.001226"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:40.464690" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:40.465000" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:40.465223" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:40.455826" elapsed="0.009454"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:40.466057" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:40.465443" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:40.467411" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:40.466620" elapsed="0.000896"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:40.466227" elapsed="0.001391"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:40.465402" 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-17T23:17:40.467997" elapsed="0.000313"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:40.470000" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:40.468998" elapsed="0.001156">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:40.468688" elapsed="0.001611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:40.468420" elapsed="0.002004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:40.454940" elapsed="0.015719">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:40.446348" elapsed="0.024639">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:42.473755" 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-17T23:17:42.472927" 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-17T23:17:42.474512" elapsed="0.000416"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:42.474019" elapsed="0.000989"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:42.473972" elapsed="0.001091"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:42.489429" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:42.489762" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:42.489985" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:42.480552" elapsed="0.009488"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:42.490779" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:42.490201" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:42.492153" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:42.491332" elapsed="0.000926"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:42.490970" elapsed="0.001358"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:42.490161" elapsed="0.002212"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:42.492709" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:42.494712" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:42.493703" elapsed="0.001185">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:42.493386" elapsed="0.001653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:42.493152" elapsed="0.002008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:42.479707" elapsed="0.015766">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:42.471979" elapsed="0.023724">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:44.499299" 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-17T23:17:44.497689" elapsed="0.001678"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:44.500117" elapsed="0.000372"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:44.499550" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:44.499501" elapsed="0.001162"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:44.515422" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:44.515765" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:44.516018" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:44.506604" 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-17T23:17:44.516864" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:44.516242" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:44.518215" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:44.517396" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:44.517034" elapsed="0.001358"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:44.516200" 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-17T23:17:44.518776" elapsed="0.000341"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:44.520838" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:44.519795" elapsed="0.001197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:44.519468" elapsed="0.001676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:44.519229" elapsed="0.002135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:44.505699" elapsed="0.015911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:44.496695" elapsed="0.025139">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:46.524633" 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-17T23:17:46.523755" elapsed="0.000949"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:46.525396" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:46.524900" elapsed="0.000996"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:46.524854" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:46.540048" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:46.540333" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:46.540530" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:46.531445" elapsed="0.009171"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:46.541352" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:46.540780" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:46.542753" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:46.541950" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:46.541519" elapsed="0.001431"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:46.540739" 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-17T23:17:46.543297" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:46.545351" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:46.544308" elapsed="0.001197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:46.544021" elapsed="0.001776">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:46.543762" elapsed="0.002188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:46.530603" elapsed="0.015555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:46.522796" elapsed="0.023558">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:48.549751" 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-17T23:17:48.548929" 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-17T23:17:48.550510" elapsed="0.000420"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:48.550014" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:48.549969" elapsed="0.001097"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:48.565332" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:48.565662" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:48.565907" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:48.556543" elapsed="0.009420"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:48.566707" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:48.566123" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:48.568078" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:48.567259" elapsed="0.000924"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:48.566898" elapsed="0.001355"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:48.566082" 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-17T23:17:48.568634" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:48.570706" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:48.569673" elapsed="0.001319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:48.569352" elapsed="0.001797">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:48.569084" elapsed="0.002189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:48.555701" elapsed="0.015778">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:48.548011" elapsed="0.023694">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:50.574504" 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-17T23:17:50.573641" elapsed="0.000973"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:50.575348" elapsed="0.000422"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:50.574802" elapsed="0.001077"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:50.574754" elapsed="0.001183"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:50.590356" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:50.590685" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:50.590912" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:50.581693" elapsed="0.009276"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:50.591780" elapsed="0.000077"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:50.591135" elapsed="0.000792"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:50.593214" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:50.592403" elapsed="0.001000"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:50.591983" elapsed="0.001492"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:50.591089" elapsed="0.002431"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:50.593877" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:50.596384" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:50.594939" elapsed="0.001602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:50.594631" elapsed="0.002096">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:50.594363" elapsed="0.002509">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:50.580779" elapsed="0.016301">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:50.572654" elapsed="0.024621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:52.600071" 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-17T23:17:52.599215" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:52.600897" elapsed="0.000366"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:52.600317" elapsed="0.001026"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:52.600269" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:52.618042" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:52.618346" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:52.618685" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:52.606989" elapsed="0.011755"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:52.619524" elapsed="0.000087"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:52.618940" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:52.620994" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:52.620123" elapsed="0.000976"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:52.619730" elapsed="0.001439"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:52.618895" 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-17T23:17:52.621519" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:52.623614" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:52.622539" elapsed="0.001235">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:52.622249" elapsed="0.001702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:52.622007" elapsed="0.002071">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:52.606110" elapsed="0.018182">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:52.598246" elapsed="0.026255">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:54.627389" 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-17T23:17:54.626527" elapsed="0.000932"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:54.628210" elapsed="0.000393"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:54.627668" elapsed="0.001016"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:54.627620" elapsed="0.001119"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:54.647223" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:54.647528" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:54.647795" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:54.637038" elapsed="0.010836"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:54.648715" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:54.648043" elapsed="0.000821"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:54.650163" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:54.649287" elapsed="0.000985"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:54.648919" elapsed="0.001422"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:54.647998" elapsed="0.002389"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:54.650725" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:54.653013" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:54.651841" elapsed="0.001386">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:54.651445" elapsed="0.001982">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:54.651176" elapsed="0.002463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:54.636140" elapsed="0.017751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:54.625507" elapsed="0.028600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:56.657220" 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-17T23:17:56.656322" elapsed="0.000968"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:56.658035" elapsed="0.000369"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:56.657476" elapsed="0.001006"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:56.657426" elapsed="0.001113"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:56.673877" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:56.674165" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:56.674364" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:56.664304" elapsed="0.010115"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:56.675187" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:56.674610" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:56.677163" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:56.675757" elapsed="0.001535"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:56.675357" elapsed="0.002007"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:56.674536" elapsed="0.002886"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:17:56.677779" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:56.679939" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:56.678881" elapsed="0.001219">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:56.678494" elapsed="0.001757">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:56.678253" elapsed="0.002123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:56.663435" elapsed="0.017181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:56.655262" elapsed="0.025680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:58.684409" 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-17T23:17:58.683019" elapsed="0.001460"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:17:58.685221" elapsed="0.000441"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:58.684690" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:58.684641" elapsed="0.001158"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:17:58.702213" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:17:58.702504" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:17:58.702760" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:17:58.691532" elapsed="0.011306"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:17:58.703555" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:17:58.703002" elapsed="0.000707"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:17:58.704981" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:17:58.704157" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-17T23:17:58.703762" elapsed="0.001398"/>
</branch>
<status status="PASS" start="2026-10-17T23:17:58.702961" 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-17T23:17:58.705533" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:17:58.707564" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:58.706546" elapsed="0.001207">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:58.706258" elapsed="0.001667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:58.706021" elapsed="0.002032">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:58.690686" elapsed="0.017667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:17:58.682025" elapsed="0.026532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:00.711452" 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-17T23:18:00.710606" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:18:00.712265" elapsed="0.000397"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:00.711741" elapsed="0.001003"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:00.711690" elapsed="0.001109"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:00.729183" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:00.729840" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:18:00.730083" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:18:00.718419" elapsed="0.011722"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:18:00.730983" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:18:00.730318" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:00.732397" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:18:00.731545" elapsed="0.000959"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:00.731159" elapsed="0.001445"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:00.730270" 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-17T23:18:00.732976" elapsed="0.000315"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:18:00.735017" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:00.733987" elapsed="0.001184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:00.733673" elapsed="0.001646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:00.733401" elapsed="0.002137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:00.717549" elapsed="0.018239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:00.709552" elapsed="0.026456">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:02.740164" 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-17T23:18:02.739250" elapsed="0.000983"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:18:02.740970" elapsed="0.000370"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:02.740411" elapsed="0.001010"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:02.740366" elapsed="0.001111"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:02.756546" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:02.756906" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:18:02.757129" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:18:02.747066" elapsed="0.010119"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:18:02.757952" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:18:02.757347" elapsed="0.000724"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:02.759313" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:18:02.758489" elapsed="0.000932"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:02.758122" elapsed="0.001368"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:02.757305" elapsed="0.002230"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:18:02.759895" elapsed="0.000314"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:18:02.761934" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:02.760898" elapsed="0.001192">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:02.760555" elapsed="0.001809">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:02.760319" elapsed="0.002175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:02.746186" elapsed="0.016548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:02.738253" elapsed="0.024703">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:04.765729" 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-17T23:18:04.764899" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:18:04.766500" elapsed="0.000419"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:04.766000" elapsed="0.001000"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:04.765954" elapsed="0.001105"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:04.783409" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:04.783749" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:18:04.783973" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:18:04.772663" elapsed="0.011365"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:18:04.784767" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:18:04.784188" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:04.786152" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:18:04.785330" elapsed="0.000930"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:04.784957" elapsed="0.001372"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:04.784147" 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-17T23:18:04.786726" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:18:04.789267" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:04.787731" elapsed="0.001784">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:04.787411" elapsed="0.002295">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:04.787173" elapsed="0.002686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:04.771783" elapsed="0.018290">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:04.763961" elapsed="0.026310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:06.793648" 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-17T23:18:06.792771" elapsed="0.000947"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:18:06.794427" elapsed="0.000427"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:06.793926" elapsed="0.001007"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:06.793873" elapsed="0.001118"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:06.811753" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:06.812071" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:18:06.812271" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:18:06.800631" elapsed="0.011695"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:18:06.813095" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:18:06.812485" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:06.814449" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:18:06.813668" elapsed="0.001068"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:06.813264" elapsed="0.001568"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:06.812443" elapsed="0.002437"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:18:06.815193" elapsed="0.000316"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:18:06.817231" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:06.816221" elapsed="0.001163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:06.815930" elapsed="0.001602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:06.815661" elapsed="0.002034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:06.799731" elapsed="0.018197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:06.791732" elapsed="0.026397">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.820881" 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-17T23:18:08.820035" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given `values` from `list`.</doc>
<status status="PASS" start="2026-10-17T23:18:08.821661" elapsed="0.000387"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:08.821131" elapsed="0.000998"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:08.821082" elapsed="0.001102"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:08.839276" level="INFO">GET Request : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:08.839562" level="INFO">GET Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-10-17T23:18:08.839996" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-10-17T23:18:08.828275" elapsed="0.011809"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-10-17T23:18:08.841159" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-10-17T23:18:08.840346" elapsed="0.000940"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:08.842704" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"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-17T23:18:08.841832" elapsed="0.001001"/>
</kw>
<status status="PASS" start="2026-10-17T23:18:08.841343" elapsed="0.001560"/>
</branch>
<status status="PASS" start="2026-10-17T23:18:08.840277" elapsed="0.002671"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-10-17T23:18:08.843255" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:18:08.845329" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.844272" elapsed="0.001217">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.843980" elapsed="0.001693">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.843714" elapsed="0.002108">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.827382" elapsed="0.018655">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.819074" elapsed="0.027161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<msg time="2026-10-17T23:18:08.846420" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:16:37.647109" elapsed="91.199561">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:08.847215" elapsed="0.000048"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:08.849092" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:18:09.158145" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:18:09.158451" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:18:09.158541" 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-17T23:18:09.158661" 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-17T23:18:08.848712" elapsed="0.310003"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:09.160465" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:18:09.159736" elapsed="0.000870"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:09.161377" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:18:09.509107" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:18:09.509423" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:18:09.509516" 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-17T23:18:09.509682" 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-17T23:18:09.161032" elapsed="0.348708"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:09.510678" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:18:09.592995" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:09.593238" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:18:09.593331" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:18:09.593412" 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-17T23:18:09.510240" elapsed="0.083218"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:09.594146" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:18:09.642680" 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-17T23:18:09.593939" elapsed="0.048896"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:09.660161" level="INFO">DELETE Request : url=http://10.30.171.120: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=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:09.660262" level="INFO">DELETE Response : url=http://10.30.171.120: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-17T23:18:09.660449" 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-17T23:18:09.643151" elapsed="0.017353"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:09.670064" level="INFO">DELETE Request : url=http://10.30.171.120: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=node0159efqft0kmni1juf6sz1kx0ws5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:09.670362" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:18:09.670610" 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-17T23:18:09.660886" elapsed="0.009782"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:18:08.847914" elapsed="0.822924"/>
</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-17T23:16:36.964250" elapsed="92.706684">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBqY1kVtyOc/IXYwPYx4rq8MHg40NxMg2SNb/0jaZyYOBDANKA2n49gPFiSkOq/J/weK5XsL9N/kZ0Zb4o0jcANw8+aToPNoh29aGwQoscM0/XhXOWRBmUbrbvVn6Jue7mpIHwM3vHgDuZSqohYSSUEu9nnAkq1ZrK4nuKuSHToT/nq68c5eCIvblkhMpcoUxa3yVVqcT7Da3oBAV1VxKKRHp6hm4W98ktHBlBW9u170rgUcaY1WSvKmfucGUQAvl9FFpmt7VzhlrxZOf4hPThCj3zH9hfLKxN2O7NkyplwSaMmSxHGRKAVNsuhOZUJr7qLgcBTyekFN5Q+z/4C9KN","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-17T23:18:09.675096" level="INFO">Creating Session using : alias=session, url=http://10.30.171.120:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x71ab4f8226d0&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-17T23:18:09.674602" elapsed="0.000903"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:09.676162" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-10-17T23:18:09.690518" 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-17T23:18:09.675959" elapsed="0.014728"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:09.691313" 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-17T23:18:09.884462" 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-17T23:18:09.691106" elapsed="0.193547"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:09.885350" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-10-17T23:18:09.934836" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:09.935063" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCazqai8vKv+uyvjwzjt1VFapCYsl38VuupU7L8bqnULbzaCWXgFlT+4wNqCNENCYU+kfLuU1xy74yX01FjCQiM4rBy6IpEAqdxuZHcWBivpPFylF6FrvadYmijDP6QBkR09EbiDRSOVa+rmZsd5s+8M/bZXJNhtYCr2usniLKS...</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-17T23:18:09.885118" elapsed="0.050003"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-10-17T23:18:09.939651" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCazqai8vKv+uyvjwzjt1VFapCYsl38VuupU7L8bqnULbzaCWXgFlT+4wNqCNENCYU+kfLuU1xy74yX01FjCQiM4rBy6IpEAqdxuZHcWBivpPFylF6FrvadYmijDP6QBkR09EbiDRSOVa+rmZsd5s+8M/bZXJNhtYCr2usniLKS...</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-17T23:18:09.935551" elapsed="0.004207"/>
</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-17T23:18:09.673911" elapsed="0.266000"/>
</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-17T23:18:09.941994" level="INFO">Executing command 'rm -rf ./certs &amp;&amp; mkdir ./certs'.</msg>
<msg time="2026-10-17T23:18:09.986696" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:09.986932" 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-17T23:18:09.941773" elapsed="0.045213"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.036430" 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-17T23:18:09.987350" elapsed="0.049210"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.037227" level="INFO">Executing command 'openssl genrsa -out ./certs/ca.key 2048'.</msg>
<msg time="2026-10-17T23:18:10.324094" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:10.324365" 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-17T23:18:10.037017" elapsed="0.287403"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.325238" 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-17T23:18:10.380904" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:10.381109" 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-17T23:18:10.324980" elapsed="0.056181"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.381821" level="INFO">Executing command 'openssl genrsa -out ./certs/server.key 2048'.</msg>
<msg time="2026-10-17T23:18:10.647744" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:10.647997" 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-17T23:18:10.381554" elapsed="0.266495"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.648736" 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-17T23:18:10.708899" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:10.709104" 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-17T23:18:10.648455" elapsed="0.060701"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.709797" 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-17T23:18:10.768962" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:10.769185" 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-17T23:18:10.709543" elapsed="0.059695"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.769967" level="INFO">Executing command 'openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub'.</msg>
<msg time="2026-10-17T23:18:10.832721" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:10.832955" 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-17T23:18:10.769683" elapsed="0.063324"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:10.833740" level="INFO">Executing command 'openssl genrsa -out ./certs/client.key 2048'.</msg>
<msg time="2026-10-17T23:18:11.345302" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:11.345561" 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-17T23:18:10.833490" elapsed="0.512167"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.346361" 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-17T23:18:11.394661" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:11.394899" 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-17T23:18:11.346113" elapsed="0.048841"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.395554" 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-17T23:18:11.460778" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:11.461006" 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-17T23:18:11.395346" elapsed="0.065714"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.461692" level="INFO">Executing command 'mv ./certs ./configuration-files/certs'.</msg>
<msg time="2026-10-17T23:18:11.514697" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:11.514932" 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-17T23:18:11.461449" elapsed="0.053538"/>
</kw>
<doc>Generates certificates for 2-way TLS authentication (ca, server, client)</doc>
<status status="PASS" start="2026-10-17T23:18:09.941102" elapsed="1.574025"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.564647" 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-17T23:18:11.515467" elapsed="0.049357"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.575863" 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-17T23:18:11.565228" elapsed="0.010757"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.586147" 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-17T23:18:11.576337" elapsed="0.009947"/>
</kw>
<doc>Upload netopeer2 configuration files needed for TLS transport</doc>
<status status="PASS" start="2026-10-17T23:18:09.940323" elapsed="1.646098"/>
</kw>
<kw name="Register keys and certificates in ODL controller" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.588207" level="INFO">Executing command 'cat ./configuration-files/certs/client.key'.</msg>
<msg time="2026-10-17T23:18:11.600730" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:11.600976" level="INFO">${pem-client-key} = -----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDWiogttgcgwRam
98xIf9116VqNthV3mFgSD+n3ddgVNLd1Ywonf+lOPQK/lPMBIXwdxmpFy8JvVPmB
nPV+6oLgTk42gk88TvQAp6AwKSkYzEtPUOLUMKnnC8...</msg>
<msg time="2026-10-17T23:18:11.601067" 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-17T23:18:11.587866" elapsed="0.013247"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-10-17T23:18:11.601768" 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-17T23:18:11.602079" 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-17T23:18:11.601447" elapsed="0.000687"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-10-17T23:18:11.602966" level="INFO">${body} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwg...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{pem-client-key}</arg>
<arg>${pem-client-key}</arg>
<doc>Replaces `search_for` in the given `string` with `replace_with`.</doc>
<status status="PASS" start="2026-10-17T23:18:11.602479" elapsed="0.000543"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:11.658703" level="INFO">POST Request : url=http://10.30.171.120:8181/rests/operations/netconf-keystore:add-keystore-entry 
 path_url=/rests/operations/netconf-keystore:add-keystore-entry 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '1906', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDWiogttgcgwRam
98xIf9116VqNthV3mFgSD+n3ddgVNLd1Ywonf+lOPQK/lPMBIXwdxmpFy8JvVPmB
nPV+6oLgTk42gk88TvQAp6AwKSkYzEtPUOLUMKnnC8BDT4Pbkjs6fd/uHNOd8Aiz
JA7+mHh7qs6NqMcyN2p/YE9i//R168u8XS6rHggsPk45Jg4D2rIZYHPqwjxdvH/a
AoRRtC6+5j3sZTy0PWpqD8ZdlI2UarcpETdcagc6pvX+HrOTOC7Z0tUgOTG5MZii
PlfKWW5ztJLkO3bj7k3w4gD7OlX5lzypNw1hX5e4I2tbJ7j2OCsx8+8me/MpMRgb
E099UnD1AgMBAAECggEAHX2/4s9jDcjCeo4/+cwAid0GMnUQC2IY4oFnLzn29lH0
/BZysWOpvbRbpIaZnD4ER+WGpfSF/vQxM3TQ4bLj7b3l43lTN14/uA1S0vv9fGgC
MYjUEsi5D5vJFez1b7abcgVr8FlBv7QHcMn+o6xwN3O53rWPjaLE1CCi7mAdNHjw
2p7LJFViQiEeCNzNSJB9bj6yp8qPX1EZNNNbagRnmneGvGElPkgQwYtt9A/FQRmb
T1/AAVCWQGu4ljWswpTBeWcRiVY4FdbwIUXjT2mnQSz8+Y7bIT2mFRMZZD66P5vb
6DX1A09QWh+00u3w/UGrFV1uU0iHjMA6Oeffio+FywKBgQDW2++IVF1+P16rbJ3w
KT30UggEgZi7G99Ny7fk70Pdva3zRKXddZ1dVdqdvu+vWQ/fXRpdlfcCQ3+mZeZR
hcN9JvPnyJpAMQa9rfCHrM/jSJmoED5qH1OnZoSzHIqNSuC2yhTXArEvgMXcg39s
HK/ceGkrntZI9NYK/Ld9Es4DEwKBgQD/nwJcP6Ju/aIm7VHQK+/6cP0WmZK1M5Xn
CJZiP/hJRQcPFSeXTGEnm35cGe132JBdBNHAZvBKuR75pV6jJcoYAg1lB98893qn
kjlFKMvHIdWehz/on8Xn0263C0Ev1ta9+5xjQqrfxW6vZ2eM91AxsQuKzelDW2bP
xd8Wx1o01wKBgDrvv4fc5Hxx840AUV6EYZs4OTzLM9L3dUyIuhvRSgN0OVgGl5zk
21Kz7zDgJC0sN/9kMYxES6pSS5ygTQpFr/cPjU4iJ7W9/QRgxx7gV3IYAxYnxocj
qrW7mGDtTlAtnvBlBExqT6IhJ6UyaOyF/fNzEB5IBq2ig2gmJErpspsDAoGBAIW7
u/FlPWcR/PaerHHbutZsrIxZVj7EuUVA4eSPESfMHFBQwgDO7flZyXcH/Yv42jZA
Ijil4ktFpKX5VZTHXX7H/BgCUVHFK/9lad774/jPg8JHgjEC/fg2TrMnCTitDnYg
oAXySBGAalMMJ0nBzcvhk2dQKRybQiOrovZ434HLAoGBAJsDVEGOlhAuvWoxv+Q+
m0Aom7px8vRsh1XccApFZNywst3OyfPsJJqOVgyrMlz8rgMQFlAmUvyckqek3QX5
r1qL87CcdhqD5SjFnzB/0LK3lKrggeK2pgCrWxL/QQXavqRvAU5hcuV6TY9n+hKA
9uZT8ZqjULOatxpBrahSViAL
-----END PRIVATE KEY-----",
                "passphrase": ""
            }
        ]
    }
}
 
 </msg>
<msg time="2026-10-17T23:18:11.659121" level="INFO">POST Response : url=http://10.30.171.120:8181/rests/operations/netconf-keystore:add-keystore-entry 
 status=500, reason=Internal Server Error 
 headers={'Set-Cookie': 'JSESSIONID=node05zuayzfsr4m9d2xzx58eynl16.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 16-Oct-2026 23:18:11 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-17T23:18:11.659346" 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-17T23:18:11.603316" elapsed="0.056082"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-10-17T23:18:11.660823" 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-17T23:18:11.659789" elapsed="0.001231">'[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-17T23:18:11.661397" elapsed="0.000052"/>
</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-17T23:18:11.661791" elapsed="0.000071"/>
</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-17T23:18:11.662162" elapsed="0.000043"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${template}</arg>
<arg>{client-key}</arg>
<arg>${client-key}</arg>
<doc>Replaces `search_for` in the given `string` with `replace_with`.</doc>
<status status="NOT RUN" start="2026-10-17T23:18:11.662517" 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-17T23:18:11.662924" 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-17T23:18:11.663247" elapsed="0.000041"/>
</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-17T23:18:11.663638" elapsed="0.000042"/>
</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-17T23:18:11.664008" elapsed="0.000048"/>
</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-17T23:18:11.664372" elapsed="0.000469"/>
</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-17T23:18:11.665156" elapsed="0.000044"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${template}</arg>
<arg>{ca-certificate}</arg>
<arg>${ca-certificate}</arg>
<doc>Replaces `search_for` in the given `string` with `replace_with`.</doc>
<status status="NOT RUN" start="2026-10-17T23:18:11.665511" 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-17T23:18:11.665915" 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-17T23:18:11.666238" elapsed="0.000041"/>
</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-17T23:18:11.666651" elapsed="0.000041"/>
</kw>
<doc>Register pre-configured netopeer2 certificates and key in ODL-netconf keystore</doc>
<status status="FAIL" start="2026-10-17T23:18:11.587053" elapsed="0.079861">'[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-17T23:18:11.667274" elapsed="0.000051"/>
</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-17T23:18:11.667719" elapsed="0.000044"/>
</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-17T23:18:11.668168" elapsed="0.000042"/>
</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-17T23:18:11.668593" elapsed="0.000056"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.670378" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-10-17T23:18:11.977350" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:18:11.977703" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:18:11.977795" 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-17T23:18:11.977900" 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-17T23:18:11.670021" elapsed="0.307927"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-17T23:18:11.979221" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-17T23:18:11.978556" elapsed="0.000753"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:11.980084" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-10-17T23:18:12.329026" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-10-17T23:18:12.329323" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:18:12.329416" 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-17T23:18:12.329501" 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-17T23:18:11.979722" elapsed="0.349826"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:12.330445" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-10-17T23:18:12.416954" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:12.417213" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-10-17T23:18:12.417305" level="INFO">${stderr} = </msg>
<msg time="2026-10-17T23:18:12.417385" 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-17T23:18:12.330073" elapsed="0.087358"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-17T23:18:12.418142" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-10-17T23:18:12.462709" 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-17T23:18:12.417924" elapsed="0.044943"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:12.472672" level="INFO">DELETE Request : url=http://10.30.171.120: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=node05zuayzfsr4m9d2xzx58eynl16.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:12.472997" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '361'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:params:xml:ns:yang:netconf-callhome-server"&gt;/a:netconf-callhome-server/a:allowed-devices&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:18:12.473216" 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-17T23:18:12.463179" elapsed="0.010090"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:12.481516" level="INFO">DELETE Request : url=http://10.30.171.120: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=node05zuayzfsr4m9d2xzx58eynl16.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-10-17T23:18:12.481796" level="INFO">DELETE Response : url=http://10.30.171.120:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+xml', 'Content-Length': '302'} 
 body=&lt;?xml version="1.0" ?&gt;&lt;errors xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf"&gt;&lt;error&gt;&lt;error-type&gt;protocol&lt;/error-type&gt;&lt;error-path xmlns:a="urn:opendaylight:netconf:keystore"&gt;/a:keystore&lt;/error-path&gt;&lt;error-message&gt;Data does not exist&lt;/error-message&gt;&lt;error-tag&gt;data-missing&lt;/error-tag&gt;&lt;/error&gt;&lt;/errors&gt; 
 </msg>
<msg time="2026-10-17T23:18:12.482043" 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-17T23:18:12.473613" elapsed="0.008483"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-10-17T23:18:11.669242" elapsed="0.812999"/>
</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-17T23:18:09.672073" elapsed="2.810267">'[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-17T23:18:12.485335" level="INFO">Executing command 'pip uninstall docker-compose'.</msg>
<msg time="2026-10-17T23:18:13.301611" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-17T23:18:13.301984" level="INFO">${stdout} = </msg>
<msg time="2026-10-17T23:18:13.302099" level="INFO">${stderr} = WARNING: Skipping docker-compose as it is not installed.</msg>
<msg time="2026-10-17T23:18:13.302184" 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-17T23:18:12.484985" elapsed="0.817248"/>
</kw>
<doc>Uninstall docker-compose on tools system</doc>
<status status="PASS" start="2026-10-17T23:18:12.484437" elapsed="0.817972"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-10-17T23:18:13.302970" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects </doc>
<status status="PASS" start="2026-10-17T23:18:13.302754" elapsed="0.001303"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-10-17T23:18:13.304352" elapsed="0.000818"/>
</kw>
<doc>Tearing down the setup.</doc>
<status status="PASS" start="2026-10-17T23:18:12.483978" elapsed="0.821314"/>
</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-17T23:10:12.280292" elapsed="481.025071"/>
</suite>
<status status="FAIL" start="2026-10-17T23:10:12.242616" elapsed="481.065649"/>
</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>
