<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-09-12T23:10:29.482070" 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-09-12T23:10:29.927557" level="INFO">${tools_connection} = 1</msg>
<var>${tools_connection}</var>
<arg>${ip_address}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-12T23:10:29.927112" elapsed="0.000483"/>
</kw>
<kw name="Flexible_Mininet_Login" owner="SSHKeywords">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-12T23:10:29.929576" level="INFO">Length is 0.</msg>
<msg time="2026-09-12T23:10:29.929657" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-12T23:10:29.929170" elapsed="0.000514"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:29.929818" elapsed="0.000385"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-12T23:10:29.931117" level="INFO">Logging into '10.30.171.111:22' as 'jenkins'.</msg>
<msg time="2026-09-12T23:10:30.331670" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-190-generic x86_64)

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

 System information as of Sat Sep 12 23:10:07 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-51161-107-1-docker-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-12T23:10:29.930653" elapsed="0.401167"/>
</kw>
<msg time="2026-09-12T23:10:30.331922" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:29.930344" elapsed="0.401676"/>
</kw>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>delay=${delay}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-12T23:10:29.928728" elapsed="0.403405"/>
</kw>
<msg time="2026-09-12T23:10:30.332184" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Flexible SSH Login</arg>
<arg>user=${user}</arg>
<arg>password=${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:29.928289" elapsed="0.403942"/>
</kw>
<doc>Call Flexible SSH Login, but with default values suitable for Mininet machine.</doc>
<status status="PASS" start="2026-09-12T23:10:29.927765" elapsed="0.404541"/>
</kw>
<return>
<value>${tools_connection}</value>
<status status="PASS" start="2026-09-12T23:10:30.332362" elapsed="0.000042"/>
</return>
<msg time="2026-09-12T23:10:30.332564" level="INFO">${netopeer_conn_id} = 1</msg>
<var>${netopeer_conn_id}</var>
<doc>Open a connection to the tools system at ${ip_address} and return its identifier.</doc>
<status status="PASS" start="2026-09-12T23:10:29.926673" elapsed="0.405916"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:30.333202" level="INFO">${netopeer_conn_id} = 1</msg>
<arg>${netopeer_conn_id}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:30.332769" elapsed="0.000475"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-12T23:10:30.335962" level="INFO">sudo curl -L "https://github.com/docker/compose/releases/download/1.11.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose</msg>
<arg>sudo curl -L "https://github.com/docker/compose/releases/download/1.11.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-12T23:10:30.333366" elapsed="0.002660"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Read Until Prompt" owner="SSHLibrary">
<msg time="2026-09-12T23:10:30.781080" level="INFO">[?2004l  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
  0 8053k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0100 8053k  100 8053k    0     0  19.6M      0 --:--:-- --:--:-- --:--:-- 95.9M
[?2004h[jenkins@releng-51161-107-1-docker-0 ~]&gt;</msg>
<doc>Consumes and returns the server output until the prompt is found.</doc>
<status status="PASS" start="2026-09-12T23:10:30.337054" elapsed="0.444160"/>
</kw>
<msg time="2026-09-12T23:10:30.781363" level="INFO">${output} = [?2004l  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     ...</msg>
<var>${output}</var>
<arg>30s</arg>
<arg>2s</arg>
<arg>SSHLibrary.Read_Until_Prompt</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-12T23:10:30.336592" elapsed="0.444798"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:30.781854" level="INFO">Executing command 'sudo chmod +x /usr/local/bin/docker-compose'.</msg>
<msg time="2026-09-12T23:10:30.804665" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:10:30.804793" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:10:30.804848" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:10:30.804891" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>sudo chmod +x /usr/local/bin/docker-compose</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:30.781599" elapsed="0.023312"/>
</kw>
<doc>Install docker-compose on tools system.</doc>
<status status="PASS" start="2026-09-12T23:10:29.923564" elapsed="0.881522"/>
</kw>
<kw name="Pull Netopeer2 Docker Image" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:30.805720" level="INFO">Executing command 'docker pull sysrepo/sysrepo-netopeer2:latest'.</msg>
<msg time="2026-09-12T23:10:39.428361" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:10:39.428748" level="INFO">${stdout} = latest: Pulling from sysrepo/sysrepo-netopeer2
399fb1102f3f: Pulling fs layer
d51af753c3d3: Pulling fs layer
9b0152ba3415: Pulling fs layer
fc878cd0a91c: Pulling fs layer
6154df8ff988: Pulling fs laye...</msg>
<msg time="2026-09-12T23:10:39.428881" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:10:39.428965" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker pull sysrepo/sysrepo-netopeer2:latest</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:30.805553" elapsed="8.623461"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.429824" level="INFO">Executing command 'docker images'.</msg>
<msg time="2026-09-12T23:10:39.565528" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:10:39.565807" level="INFO">${stdout} = IMAGE                              ID             DISK USAGE   CONTENT SIZE   EXTRA
sysrepo/sysrepo-netopeer2:latest   36cc1d841c97        914MB          232MB        </msg>
<msg time="2026-09-12T23:10:39.565938" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:10:39.566019" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker images</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:39.429402" elapsed="0.136662"/>
</kw>
<doc>Pulls the netopeer image from the docker repository.</doc>
<status status="PASS" start="2026-09-12T23:10:30.805305" elapsed="8.760931"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.616990" level="INFO">[chan 4] Opened sftp connection (server version 3)</msg>
<msg time="2026-09-12T23:10:39.631104" 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-09-12T23:10:39.566525" elapsed="0.064706"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.642268" 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-09-12T23:10:39.631526" elapsed="0.010858"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.643020" level="INFO">Executing command 'sed -i -e 's/ODL_SYSTEM_IP/10.30.171.31/g' docker-compose.yaml'.</msg>
<msg time="2026-09-12T23:10:39.656074" level="INFO">Command exited with return code 0.</msg>
<arg>sed -i -e 's/ODL_SYSTEM_IP/${ODL_SYSTEM_IP}/g' docker-compose.yaml</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:39.642692" elapsed="0.013496"/>
</kw>
<kw name="Set_Variable_If_At_Least_Sulfur" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set_Variable_If_At_Least" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set Variable If" owner="BuiltIn">
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-09-12T23:10:39.685646" elapsed="0.000928"/>
</kw>
<msg time="2026-09-12T23:10:39.686703" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>BuiltIn.Set_Variable_If</arg>
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:39.684937" elapsed="0.001882"/>
</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-09-12T23:10:39.684231" elapsed="0.002773"/>
</kw>
<msg time="2026-09-12T23:10:39.687089" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Set_Variable_If_At_Least</arg>
<arg>sulfur</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:39.670370" elapsed="0.016803"/>
</kw>
<msg time="2026-09-12T23:10:39.687380" 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-09-12T23:10:39.669803" elapsed="0.017624"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.688015" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_SSH/4334/g' docker-compose.yaml'.</msg>
<msg time="2026-09-12T23:10:39.708072" level="INFO">Command exited with return code 0.</msg>
<arg>sed -i -e 's/NETCONF_CH_SSH/${netconf_cl_ssh_port}/g' docker-compose.yaml</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:39.687713" elapsed="0.020471"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.708667" level="INFO">Executing command 'sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml'.</msg>
<msg time="2026-09-12T23:10:39.760462" level="INFO">Command exited with return code 0.</msg>
<arg>sed -i -e 's/NETCONF_CH_TLS/4335/g' docker-compose.yaml</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:39.708453" elapsed="0.052127"/>
</kw>
<kw name="Set_Variable_If_At_Least_Scandium" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set_Variable_If_At_Least" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set Variable If" owner="BuiltIn">
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-09-12T23:10:39.789373" elapsed="0.000900"/>
</kw>
<msg time="2026-09-12T23:10:39.790375" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>BuiltIn.Set_Variable_If</arg>
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:39.788669" elapsed="0.001808"/>
</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-09-12T23:10:39.788046" elapsed="0.002603"/>
</kw>
<msg time="2026-09-12T23:10:39.790863" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Set_Variable_If_At_Least</arg>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:39.774279" elapsed="0.016678"/>
</kw>
<msg time="2026-09-12T23:10:39.791161" 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-09-12T23:10:39.773749" elapsed="0.017460"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.792067" level="INFO">${substring2} = "node-id":"netopeer2"</msg>
<var>${substring2}</var>
<arg>"node-id":"netopeer2"</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-12T23:10:39.791496" elapsed="0.000623"/>
</kw>
<kw name="Set_Variable_If_At_Least_Scandium" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set_Variable_If_At_Least" owner="CompareStream">
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Set Variable If" owner="BuiltIn">
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="PASS" start="2026-09-12T23:10:39.812690" elapsed="0.000536"/>
</kw>
<msg time="2026-09-12T23:10:39.813289" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>BuiltIn.Set_Variable_If</arg>
<arg>${Stream_dict}[${ODL_STREAM}] &gt;= ${Stream_dict}[${lower_bound}]</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:39.812259" elapsed="0.001094"/>
</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-09-12T23:10:39.811879" elapsed="0.001566"/>
</kw>
<msg time="2026-09-12T23:10:39.813496" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>Set_Variable_If_At_Least</arg>
<arg>scandium</arg>
<arg>${value_if_true}</arg>
<arg>${value_if_false}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-12T23:10:39.803343" elapsed="0.010207"/>
</kw>
<msg time="2026-09-12T23:10:39.813692" 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-09-12T23:10:39.803043" elapsed="0.010680"/>
</kw>
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.814354" level="INFO">${netconf_mount_expected_values} = ['"connection-status":"connected"', '"node-id":"netopeer2"', '"available-capabilities"']</msg>
<var>${netconf_mount_expected_values}</var>
<arg>${substring1}</arg>
<arg>${substring2}</arg>
<arg>${substring3}</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:39.813918" elapsed="0.000469"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.815011" level="INFO">${netconf_mount_expected_values} = ['"connection-status":"connected"', '"node-id":"netopeer2"', '"available-capabilities"']</msg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.814576" elapsed="0.000486"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.819187" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.815239" elapsed="0.004007"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.823624" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.819433" elapsed="0.004249"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.826645" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.823894" elapsed="0.002791"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.829920" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.826819" elapsed="0.003149"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.833039" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.830101" elapsed="0.002977"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.836360" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.833210" elapsed="0.003190"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:39.839504" 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 a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:39.836568" elapsed="0.002976"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:39.839763" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./incorrect_ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:10:40.135775" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./incorrect_ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:39.839677" elapsed="0.296300"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:40.136543" level="INFO">Executing command 'awk '{print $2}' incorrect_ssh_host_rsa_key.pub'.</msg>
<msg time="2026-09-12T23:10:40.184542" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:10:40.184789" level="INFO">${incorrect_public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRV...</msg>
<var>${incorrect_public_key}</var>
<arg>awk '{print $2}' incorrect_ssh_host_rsa_key.pub</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:40.136313" elapsed="0.048568"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:40.192765" level="INFO">${INCORRECT_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRV...</msg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>${incorrect_public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-12T23:10:40.185242" elapsed="0.007642"/>
</kw>
<doc>Get the suite ready for callhome test cases.</doc>
<status status="PASS" start="2026-09-12T23:10:29.923250" elapsed="10.269760"/>
</kw>
<test id="s1-s1-t1" name="CallHome over SSH with correct device credentials" line="17">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:40.195423" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e7b1e110&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:10:40.194906" elapsed="0.000894"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:40.196306" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:10:40.231919" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:40.196113" elapsed="0.035917"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:40.232486" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:10:40.401478" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:40.232300" elapsed="0.169337"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:40.402209" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:10:40.447960" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:10:40.448174" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHA...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:40.401988" elapsed="0.046240"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:40.455946" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHA...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:10:40.448553" elapsed="0.007485"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:10:40.194347" elapsed="0.261814"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:10:40.496189" 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-09-12T23:10:40.457078" elapsed="0.039225"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:10:40.505966" 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-09-12T23:10:40.496596" elapsed="0.009485"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-12T23:10:40.456504" elapsed="0.049694"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:10:40.514067" elapsed="0.000149"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:40.507426" elapsed="0.006850"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:10:40.515471" 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-09-12T23:10:40.515777" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:10:40.515180" elapsed="0.000650"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:10:40.516815" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:10:40.516155" elapsed="0.000776"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:40.514636" elapsed="0.002401"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:40.514334" elapsed="0.002749"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:40.507371" elapsed="0.009759"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:10:40.517936" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
      ...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:10:40.517394" elapsed="0.000596"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:10:40.518752" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
          },...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:10:40.518271" elapsed="0.000533"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:10:40.519552" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:10:40.519113" elapsed="0.000511"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:10:40.520365" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:10:40.519927" elapsed="0.000490"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:41.552168" level="INFO">POST Request : url=http://10.30.171.31: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:10:41.552319" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:10:41 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:41.552605" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:40.520696" elapsed="1.031968"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:41.553209" elapsed="0.004620"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>root</arg>
<arg>root</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:10:40.506712" elapsed="1.051281"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:10:41.558690" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-12T23:10:41.847637" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:10:41.847965" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:10:41.848056" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:10:41.848140" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:10:41.558308" elapsed="0.289878"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:41.851360" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:41.850608" elapsed="0.000805"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:41.852262" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:41.851707" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:41.851657" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:41.911767" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:41.913377" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:41.913605" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:41.865971" elapsed="0.047687"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:41.914453" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:41.913821" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:41.919074" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:41.914923" elapsed="0.004254"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:41.914640" elapsed="0.004604"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:41.913778" elapsed="0.005517"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:41.919567" elapsed="0.000442"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:41.920684" elapsed="0.004694"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:41.920419" elapsed="0.005037"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:41.930360" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:41.925927" elapsed="0.004731">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:41.925655" elapsed="0.005161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:41.920132" elapsed="0.010850">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:41.865099" elapsed="0.066105">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:41.849894" elapsed="0.081579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:43.934068" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:43.933197" elapsed="0.000933"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:43.934869" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:43.934305" elapsed="0.000682"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:43.934259" elapsed="0.000779"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:43.960322" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:43.960660" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:43.960887" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:43.948280" elapsed="0.012661"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:43.961720" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:43.961100" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:43.966389" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:43.962185" elapsed="0.004414"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:43.961917" elapsed="0.004754"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:43.961059" elapsed="0.005662"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:43.967006" elapsed="0.000338"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:43.968028" elapsed="0.004290"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:43.967757" elapsed="0.004639"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:43.977240" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:43.972866" elapsed="0.004537">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:43.972600" elapsed="0.004973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:43.967484" elapsed="0.010308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:43.947424" elapsed="0.030611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:43.932346" elapsed="0.045888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:45.981027" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:45.980127" elapsed="0.000964"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:45.981784" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:45.981261" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:45.981217" elapsed="0.000762"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:46.007245" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:46.007560" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:46.007867" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:45.995827" elapsed="0.012112"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:46.008828" elapsed="0.000110"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:46.008135" elapsed="0.000878"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:46.013637" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:46.009314" elapsed="0.004435"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:46.009061" elapsed="0.004815"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:46.008084" elapsed="0.005869"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:46.014221" elapsed="0.000397"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:46.015358" elapsed="0.004640"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:46.015077" elapsed="0.005003"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:46.024979" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:46.020550" elapsed="0.004699">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:46.020252" elapsed="0.005168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:46.014740" elapsed="0.010807">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:45.994986" elapsed="0.030782">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:45.979125" elapsed="0.046868">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:48.028637" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:48.027784" elapsed="0.000915"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:48.029438" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:48.028906" elapsed="0.000645"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:48.028829" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:48.054353" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:48.054644" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:48.054887" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:48.042825" elapsed="0.012119"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:48.055731" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:48.055104" elapsed="0.000770"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:48.060425" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:48.056177" elapsed="0.004437"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:48.055924" elapsed="0.004761"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:48.055063" elapsed="0.005667"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:48.061014" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:48.062040" elapsed="0.004755"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:48.061766" elapsed="0.005140"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:48.071767" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:48.067345" elapsed="0.004624">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:48.067083" elapsed="0.005034">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:48.061493" elapsed="0.010751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:48.041991" elapsed="0.030482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:48.026920" elapsed="0.045751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:50.075292" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:50.074445" elapsed="0.000911"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:50.076053" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:50.075523" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:50.075480" elapsed="0.000737"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:50.101979" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:50.102280" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:50.102567" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:50.089828" elapsed="0.012791"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:50.103512" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:50.102777" elapsed="0.000857"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:50.108113" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:50.103966" elapsed="0.004249"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:50.103683" elapsed="0.004622"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:50.102739" elapsed="0.005613"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:50.108601" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:50.109615" elapsed="0.004303"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:50.109378" elapsed="0.004618"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:50.118729" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:50.114425" elapsed="0.004524">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:50.114158" elapsed="0.004936">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:50.109085" elapsed="0.010129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:50.088967" elapsed="0.030470">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:50.073586" elapsed="0.046037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:52.122258" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:52.121418" 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-09-12T23:10:52.123013" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:52.122484" elapsed="0.000759"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:52.122442" elapsed="0.000858"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:52.147749" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:52.148073" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:52.148313" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:52.137114" elapsed="0.011252"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:52.149126" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:52.148519" elapsed="0.000748"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:52.153803" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:52.149577" elapsed="0.004362"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:52.149316" elapsed="0.004692"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:52.148481" elapsed="0.005574"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:52.154323" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:52.155326" elapsed="0.004354"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:52.155066" elapsed="0.004693"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:52.164657" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:52.160193" elapsed="0.004621">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:52.159953" elapsed="0.005038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:52.154769" elapsed="0.010347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:52.136270" elapsed="0.029076">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:52.120562" elapsed="0.045047">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:54.168273" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:54.167430" 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-09-12T23:10:54.169032" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:54.168500" elapsed="0.000646"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:54.168458" elapsed="0.000758"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:54.193916" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:54.194227" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:54.194439" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:54.182365" elapsed="0.012126"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:54.195289" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:54.194648" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:54.200053" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:54.195715" elapsed="0.004460"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:54.195448" elapsed="0.004796"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:54.194609" elapsed="0.005678"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:54.200533" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:54.201551" elapsed="0.004660"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:54.201312" elapsed="0.004981"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:54.211096" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:54.206691" elapsed="0.004589">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:54.206453" elapsed="0.004973">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:54.201023" elapsed="0.010607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:54.181508" elapsed="0.030356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:54.166538" elapsed="0.045523">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:56.214668" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:56.213827" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:56.215440" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:56.214924" elapsed="0.000629"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:56.214882" elapsed="0.000718"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:56.239487" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:56.239763" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:56.239986" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:56.228711" elapsed="0.011325"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:10:56.240780" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:56.240220" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:56.245396" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:56.241247" elapsed="0.004252"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:56.240966" elapsed="0.004599"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:56.240181" elapsed="0.005428"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:56.245881" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:56.246897" elapsed="0.004346"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:56.246628" elapsed="0.004694"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:56.256100" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:56.251726" elapsed="0.004653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:56.251481" elapsed="0.005046">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:56.246361" elapsed="0.010287">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:56.227888" elapsed="0.028988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:56.213019" elapsed="0.044051">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:10:58.259594" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:10:58.258743" elapsed="0.000911"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:10:58.260366" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:58.259816" elapsed="0.000664"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:58.259774" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:10:58.285438" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:10:58.285717" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:10:58.285964" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:10:58.274399" 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-09-12T23:10:58.286758" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:10:58.286196" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:10:58.291377" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:10:58.287224" elapsed="0.004333"/>
</kw>
<status status="PASS" start="2026-09-12T23:10:58.286950" elapsed="0.004674"/>
</branch>
<status status="PASS" start="2026-09-12T23:10:58.286158" elapsed="0.005510"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:10:58.291954" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:10:58.292950" elapsed="0.004329"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:10:58.292677" elapsed="0.004679"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:10:58.302233" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:10:58.297751" elapsed="0.004634">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:10:58.297514" elapsed="0.005013">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:10:58.292421" elapsed="0.010224">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:10:58.273493" elapsed="0.029376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:58.257928" elapsed="0.045164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:00.305660" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:00.304826" elapsed="0.000895"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:00.306506" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:00.305917" elapsed="0.000701"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:00.305873" elapsed="0.000794"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:00.329349" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:00.329705" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:00.330119" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:00.320462" elapsed="0.009722"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:00.331160" elapsed="0.000066"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:00.330380" elapsed="0.000925"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:00.336784" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:00.331723" elapsed="0.005211"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:00.331367" elapsed="0.005636"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:00.330330" elapsed="0.006747"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:00.337332" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:00.338433" elapsed="0.004311"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:00.338175" elapsed="0.004646"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:00.347637" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:00.343282" elapsed="0.004510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:00.343038" elapsed="0.004938">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:00.337820" elapsed="0.010302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:00.319463" elapsed="0.028888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:00.304006" elapsed="0.044543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:02.351151" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:02.350285" 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-09-12T23:11:02.351919" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:02.351389" elapsed="0.000757"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:02.351347" elapsed="0.000853"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:02.374748" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:02.375123" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:02.375321" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:02.365668" elapsed="0.009705"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:02.376144" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:02.375527" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:02.380723" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:02.376563" elapsed="0.004262"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:02.376303" elapsed="0.004621"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:02.375488" elapsed="0.005481"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:02.381244" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:02.382226" elapsed="0.004383"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:02.381966" elapsed="0.004720"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:02.391520" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:02.387140" elapsed="0.004526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:02.386876" elapsed="0.004929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:02.381680" elapsed="0.010281">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:02.364769" elapsed="0.027412">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:02.349443" elapsed="0.042991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:04.395187" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:04.394298" elapsed="0.000961"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:04.396016" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:04.395445" elapsed="0.000687"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:04.395398" elapsed="0.000782"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:04.423308" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:04.423586" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:04.423801" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:04.412526" 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-09-12T23:11:04.424642" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:04.424072" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:04.429241" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:04.425100" elapsed="0.004244"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:04.424799" elapsed="0.004612"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:04.424031" elapsed="0.005425"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:04.429702" elapsed="0.000472"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:04.430782" elapsed="0.004464"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:04.430543" elapsed="0.004781"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:04.440107" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:04.435720" elapsed="0.004541">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:04.435483" elapsed="0.004922">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:04.430287" elapsed="0.010327">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:04.411580" elapsed="0.029236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:04.393414" elapsed="0.047679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:06.443640" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:06.442785" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:06.444421" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:06.443898" elapsed="0.000635"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:06.443827" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:06.469326" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:06.469606" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:06.469799" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:06.457968" elapsed="0.011916"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:06.470636" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:06.470069" elapsed="0.000676"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:06.475287" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:06.471095" elapsed="0.004296"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:06.470791" elapsed="0.004667"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:06.470024" elapsed="0.005475"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:06.475738" elapsed="0.000404"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:06.476799" elapsed="0.004718"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:06.476563" elapsed="0.005031"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:06.486373" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:06.482043" elapsed="0.004565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:06.481754" elapsed="0.005000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:06.476270" elapsed="0.010636">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:06.457118" elapsed="0.030005">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:06.441960" elapsed="0.045350">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:08.491967" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:08.489081" elapsed="0.002960"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:08.492722" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:08.492214" elapsed="0.000656"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:08.492171" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:08.515902" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:08.516192" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:08.516389" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:08.506123" elapsed="0.010317"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:08.517232" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:08.516596" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:08.521811" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:08.517643" elapsed="0.004390"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:08.517393" elapsed="0.004710"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:08.516558" elapsed="0.005588"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:08.522393" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:08.523381" elapsed="0.004254"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:08.523142" elapsed="0.004571"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:08.532527" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:08.528161" elapsed="0.004525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:08.527920" elapsed="0.004948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:08.522863" elapsed="0.010162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:08.505255" elapsed="0.027983">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:08.488223" elapsed="0.045220">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:10.536211" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:10.535357" elapsed="0.000915"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:10.536987" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:10.536437" elapsed="0.000666"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:10.536395" elapsed="0.000756"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:10.561997" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:10.562276" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:10.562581" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:10.550919" elapsed="0.011716"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:10.563420" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:10.562789" elapsed="0.000743"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:10.567989" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:10.563825" elapsed="0.004267"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:10.563578" elapsed="0.004580"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:10.562751" elapsed="0.005451"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:10.568446" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:10.569442" elapsed="0.004254"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:10.569205" elapsed="0.004571"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:10.578526" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:10.574228" elapsed="0.004442">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:10.573989" elapsed="0.004825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:10.568945" elapsed="0.010043">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:10.550056" elapsed="0.029129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:10.534508" elapsed="0.044869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:12.582008" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:12.581171" elapsed="0.000899"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:12.582737" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:12.582239" elapsed="0.000758"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:12.582195" elapsed="0.000864"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:12.608624" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:12.608996" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:12.609206" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:12.597631" elapsed="0.011627"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:12.610062" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:12.609421" elapsed="0.000757"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:12.614765" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:12.610473" elapsed="0.004467"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:12.610223" elapsed="0.004793"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:12.609380" elapsed="0.005681"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:12.615311" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:12.616343" elapsed="0.004754"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:12.616093" elapsed="0.005087"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:12.626024" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:12.621589" elapsed="0.004582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:12.621345" elapsed="0.004970">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:12.615765" elapsed="0.010674">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:12.596502" elapsed="0.030131">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:12.580303" elapsed="0.046681">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:14.629656" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:14.628863" elapsed="0.000855"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:14.630460" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:14.629937" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:14.629892" elapsed="0.000730"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:14.654376" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:14.654662" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:14.654918" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:14.643916" elapsed="0.011056"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:14.655733" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:14.655140" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:14.660378" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:14.656207" elapsed="0.004274"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:14.655954" elapsed="0.004595"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:14.655097" elapsed="0.005496"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:14.660888" elapsed="0.000345"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:14.661883" elapsed="0.004422"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:14.661594" elapsed="0.004787"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:14.671217" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:14.666780" elapsed="0.004662">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:14.666538" elapsed="0.005133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:14.661343" elapsed="0.010659">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:14.643070" elapsed="0.029153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:14.627987" elapsed="0.044431">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:16.675065" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:16.674220" elapsed="0.000907"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:16.675783" elapsed="0.000093"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:16.675291" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:16.675249" elapsed="0.000749"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:16.700123" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:16.700403" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:16.700618" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:16.689936" elapsed="0.010734"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:16.701449" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:16.700879" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:16.706085" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:16.701914" elapsed="0.004282"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:16.701607" elapsed="0.004672"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:16.700808" elapsed="0.005533"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:16.706597" elapsed="0.000415"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:16.707619" elapsed="0.004381"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:16.707381" elapsed="0.004700"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:16.716911" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:16.712489" elapsed="0.004667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:16.712245" elapsed="0.005059">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:16.707124" elapsed="0.010319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:16.689053" elapsed="0.028603">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:16.673374" elapsed="0.044521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:18.720479" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:18.719641" 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-09-12T23:11:18.721281" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:18.720703" elapsed="0.000691"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:18.720661" elapsed="0.000783"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:18.745865" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:18.746152" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:18.746352" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:18.734799" elapsed="0.011606"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:18.747234" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:18.746569" elapsed="0.000778"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:18.752225" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:18.747642" elapsed="0.004769"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:18.747395" elapsed="0.005085"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:18.746527" elapsed="0.005997"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:18.752797" elapsed="0.000373"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:18.753804" elapsed="0.004373"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:18.753536" elapsed="0.004718"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:18.763126" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:18.758651" elapsed="0.004627">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:18.758414" elapsed="0.005008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:18.753282" elapsed="0.010260">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:18.733943" elapsed="0.029795">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:18.718808" elapsed="0.045170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:20.766650" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:20.765832" 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-09-12T23:11:20.767439" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:20.766936" elapsed="0.000617"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:20.766891" elapsed="0.000710"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:20.791572" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:20.791940" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:20.792238" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:20.781192" elapsed="0.011099"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:20.793091" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:20.792451" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:20.797674" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:20.793503" elapsed="0.004298"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:20.793253" elapsed="0.004673"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:20.792409" elapsed="0.005572"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:20.798235" elapsed="0.000343"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:20.799240" elapsed="0.004291"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:20.798998" elapsed="0.004610"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:20.808636" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:20.804066" elapsed="0.004744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:20.803792" elapsed="0.005195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:20.798690" elapsed="0.010419">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:20.780164" elapsed="0.029141">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:20.764967" elapsed="0.044528">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:22.812059" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:22.811222" 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-09-12T23:11:22.812860" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:22.812286" elapsed="0.000788"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:22.812244" elapsed="0.000884"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:22.837998" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:22.838280" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:22.838494" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:22.827012" elapsed="0.011534"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:22.839326" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:22.838700" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:22.843923" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:22.839734" elapsed="0.004296"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:22.839486" elapsed="0.004610"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:22.838661" elapsed="0.005481"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:22.844388" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:22.845377" elapsed="0.004264"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:22.845138" elapsed="0.004583"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:22.854496" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:22.850172" elapsed="0.004470">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:22.849935" elapsed="0.004869">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:22.844881" elapsed="0.010084">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:22.826150" elapsed="0.029013">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:22.810372" elapsed="0.045047">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:24.858166" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:24.857307" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:24.858944" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:24.858398" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:24.858355" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:24.882202" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:24.882509" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:24.882708" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:24.872439" elapsed="0.010341"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:24.883553" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:24.882968" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:24.888557" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:24.884029" elapsed="0.004632"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:24.883712" elapsed="0.005056"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:24.882928" elapsed="0.005941"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:24.889146" elapsed="0.000340"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:24.890150" elapsed="0.004718"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:24.889904" elapsed="0.005064"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:24.899768" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:24.895420" elapsed="0.004549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:24.895160" elapsed="0.004971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:24.889594" elapsed="0.010754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:24.871574" elapsed="0.028975">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:24.856420" elapsed="0.044336">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:26.903423" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:26.902530" elapsed="0.000956"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:26.904224" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:26.903652" elapsed="0.000685"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:26.903609" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:26.928799" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:26.929135" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:26.929328" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:26.917815" elapsed="0.011563"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:26.930164" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:26.929530" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:26.935007" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:26.930581" elapsed="0.004529"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:26.930323" elapsed="0.004852"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:26.929491" elapsed="0.005728"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:26.935472" elapsed="0.000422"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:26.936516" elapsed="0.004314"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:26.936278" elapsed="0.004656"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:26.946209" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:26.941329" elapsed="0.005119">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:26.941093" elapsed="0.005502">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:26.936018" elapsed="0.010698">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:26.916960" elapsed="0.030009">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:26.901611" elapsed="0.045550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:28.949807" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:28.948994" 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-09-12T23:11:28.950562" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:28.950065" elapsed="0.000610"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:28.950024" elapsed="0.000723"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:28.975395" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:28.975673" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:28.975945" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:28.964509" elapsed="0.011490"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:28.976767" elapsed="0.000060"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:28.976155" elapsed="0.000773"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:28.981529" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:28.977235" elapsed="0.004507"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:28.976976" elapsed="0.004838"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:28.976116" elapsed="0.005771"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:28.982138" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:28.983134" elapsed="0.004275"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:28.982891" elapsed="0.004596"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:28.992310" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:28.987933" elapsed="0.004526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:28.987648" elapsed="0.004956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:28.982582" elapsed="0.010198">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:28.963648" elapsed="0.029437">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:28.948134" elapsed="0.045242">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:30.996043" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:30.995206" elapsed="0.000898"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:30.996812" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:30.996269" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:30.996227" elapsed="0.000778"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:31.025480" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:31.025792" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:31.026105" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:31.014485" elapsed="0.011673"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:31.026949" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:31.026318" elapsed="0.000744"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:31.032008" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:31.027365" elapsed="0.004744"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:31.027108" elapsed="0.005068"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:31.026278" elapsed="0.005940"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:31.032459" elapsed="0.000350"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:31.033439" elapsed="0.004438"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:31.033199" elapsed="0.004756"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:31.042662" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:31.038351" elapsed="0.004509">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:31.038115" elapsed="0.004891">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:31.032946" elapsed="0.010181">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:31.013610" elapsed="0.029728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:30.994315" elapsed="0.049210">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:33.046227" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:33.045374" elapsed="0.000915"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:33.047002" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:33.046452" elapsed="0.000745"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:33.046410" elapsed="0.000842"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:33.071407" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:33.071687" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:33.071937" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:33.060750" elapsed="0.011240"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:33.072735" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:33.072144" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:33.077333" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:33.073185" elapsed="0.004251"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:33.072926" elapsed="0.004575"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:33.072105" elapsed="0.005440"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:33.077818" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:33.078802" elapsed="0.004315"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:33.078544" elapsed="0.004651"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:33.087991" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:33.083591" elapsed="0.004549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:33.083354" elapsed="0.004928">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:33.078289" elapsed="0.010113">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:33.059921" elapsed="0.028677">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:33.044499" elapsed="0.044413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:35.092183" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:35.091279" elapsed="0.000967"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:35.093168" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:35.092450" elapsed="0.000836"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:35.092392" elapsed="0.000943"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:35.117013" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:35.117304" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:35.117513" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:35.107099" elapsed="0.010464"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:35.118316" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:35.117730" elapsed="0.000695"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:35.122956" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:35.118750" elapsed="0.004310"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:35.118471" elapsed="0.004656"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:35.117675" elapsed="0.005495"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:35.123414" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:35.124398" elapsed="0.004389"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:35.124158" elapsed="0.004738"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:35.133614" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:35.129296" elapsed="0.004485">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:35.129058" elapsed="0.004897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:35.123904" elapsed="0.010291">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:35.106246" elapsed="0.028154">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:35.090301" elapsed="0.044289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:37.137141" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:37.136302" elapsed="0.000899"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:37.138000" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:37.137362" elapsed="0.000751"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:37.137321" elapsed="0.000840"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:37.162620" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:37.162968" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:37.163159" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:37.151411" elapsed="0.011797"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:37.163998" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:37.163361" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:37.169079" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:37.164391" elapsed="0.004788"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:37.164153" elapsed="0.005092"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:37.163322" elapsed="0.005965"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:37.169533" elapsed="0.000371"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:37.170496" elapsed="0.004290"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:37.170265" elapsed="0.004622"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:37.179596" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:37.175280" elapsed="0.004592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:37.175046" elapsed="0.004972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:37.170013" elapsed="0.010123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:37.150578" elapsed="0.029751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:37.135476" elapsed="0.045036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:39.183614" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:39.182751" elapsed="0.000924"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:39.184389" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:39.183892" elapsed="0.000608"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:39.183819" elapsed="0.000732"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:39.207690" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:39.208029" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:39.208223" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:39.197778" elapsed="0.010497"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:39.209048" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:39.208427" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:39.213751" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:39.209465" elapsed="0.004516"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:39.209210" elapsed="0.004842"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:39.208389" elapsed="0.005708"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:39.214345" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:39.215349" elapsed="0.004450"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:39.215107" elapsed="0.004802"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:39.224743" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:39.220313" elapsed="0.004613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:39.220076" elapsed="0.004997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:39.214815" elapsed="0.010379">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:39.196962" elapsed="0.028433">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:39.181775" elapsed="0.043810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:41.228086" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:41.227256" 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-09-12T23:11:41.228870" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:41.228313" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:41.228271" elapsed="0.000766"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:41.255035" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:41.255312" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:41.255617" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:41.245105" elapsed="0.010563"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:41.256455" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:41.255881" elapsed="0.000685"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:41.261055" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:41.256909" elapsed="0.004249"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:41.256614" elapsed="0.004610"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:41.255813" elapsed="0.005456"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:41.261510" elapsed="0.000389"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:41.262498" elapsed="0.004283"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:41.262262" elapsed="0.004626"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:41.272254" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:41.267285" elapsed="0.005133">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:41.267052" elapsed="0.005521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:41.262007" elapsed="0.010688">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:41.244149" elapsed="0.028810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:41.226398" elapsed="0.046754">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:43.275646" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:43.274863" 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-09-12T23:11:43.276460" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:43.275919" elapsed="0.000793"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:43.275876" elapsed="0.000914"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:43.301462" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:43.301777" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:43.302003" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:43.290185" elapsed="0.011868"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:43.302794" elapsed="0.000078"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:43.302204" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:43.307443" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:43.303233" elapsed="0.004315"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:43.302980" elapsed="0.004635"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:43.302166" elapsed="0.005493"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:43.307958" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:43.308944" elapsed="0.004603"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:43.308659" elapsed="0.004967"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:43.318414" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:43.314088" elapsed="0.004474">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:43.313816" elapsed="0.004888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:43.308405" elapsed="0.010475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:43.289333" elapsed="0.029753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:43.274040" elapsed="0.045310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:45.321967" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:45.321115" elapsed="0.000914"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:45.322699" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:45.322194" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:45.322152" elapsed="0.000764"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:45.347097" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:45.347376" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:45.347571" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:45.336431" elapsed="0.011191"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:45.348402" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:45.347803" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:45.353016" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:45.348862" elapsed="0.004257"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:45.348562" elapsed="0.004626"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:45.347763" elapsed="0.005470"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:45.353478" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:45.354473" elapsed="0.005686"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:45.354232" elapsed="0.006047"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:45.365207" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:45.360715" elapsed="0.004667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:45.360472" elapsed="0.005070">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:45.353977" elapsed="0.011818">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:45.335557" elapsed="0.030471">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:45.320236" elapsed="0.045984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:47.369118" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:47.368240" elapsed="0.000941"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:47.369921" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:47.369360" elapsed="0.000697"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:47.369314" elapsed="0.000793"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:47.395337" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:47.395628" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:47.395901" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:47.383963" elapsed="0.012000"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:47.396687" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:47.396121" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:47.401302" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:47.397148" elapsed="0.004258"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:47.396899" elapsed="0.004576"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:47.396081" elapsed="0.005437"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:47.401789" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:47.402785" elapsed="0.004336"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:47.402527" elapsed="0.004676"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:47.411998" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:47.407605" elapsed="0.004633">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:47.407365" elapsed="0.005019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:47.402270" elapsed="0.010237">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:47.383100" elapsed="0.029607">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:47.367309" elapsed="0.045651">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:49.415525" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:49.414681" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:49.416296" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:49.415747" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:49.415706" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:49.439231" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:49.439510" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:49.439704" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:49.429676" 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-09-12T23:11:49.440564" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:49.439996" elapsed="0.000678"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:49.445506" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:49.441031" elapsed="0.004706"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:49.440722" elapsed="0.005104"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:49.439953" elapsed="0.005946"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:49.446147" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:49.447132" elapsed="0.004745"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:49.446893" elapsed="0.005076"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:49.456795" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:49.452389" elapsed="0.004591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:49.452139" elapsed="0.004986">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:49.446588" elapsed="0.010660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:49.428867" elapsed="0.028577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:49.413803" elapsed="0.043827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:51.460268" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:51.459425" 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-09-12T23:11:51.461055" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:51.460498" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:51.460454" elapsed="0.000763"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:51.485984" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:51.486273" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:51.486571" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:51.474628" elapsed="0.011999"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:51.487537" elapsed="0.000057"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:51.486816" elapsed="0.000862"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:51.492284" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:51.488077" elapsed="0.004310"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:51.487736" elapsed="0.004719"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:51.486745" elapsed="0.005753"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:51.492742" elapsed="0.000386"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:51.493733" elapsed="0.004440"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:51.493492" elapsed="0.004757"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:51.503044" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:51.498646" elapsed="0.004548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:51.498408" elapsed="0.004933">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:51.493238" elapsed="0.010223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:51.473796" elapsed="0.029862">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:51.458536" elapsed="0.045361">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:53.506428" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:53.505583" 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-09-12T23:11:53.507203" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:53.506655" elapsed="0.000798"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:53.506613" elapsed="0.000898"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:53.531297" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:53.531575" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:53.531811" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:53.521580" elapsed="0.010313"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:53.532617" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:53.532050" elapsed="0.000679"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:53.537248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:53.533096" elapsed="0.004256"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:53.532799" elapsed="0.004619"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:53.532010" elapsed="0.005452"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:53.537707" elapsed="0.000384"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:53.538687" elapsed="0.004370"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:53.538449" elapsed="0.004688"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:53.547912" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:53.543535" elapsed="0.004527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:53.543299" elapsed="0.004906">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:53.538197" elapsed="0.010130">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:53.520558" elapsed="0.027963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:53.504724" elapsed="0.044146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:55.551467" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:55.550622" elapsed="0.000907"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:55.552237" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:55.551691" elapsed="0.000658"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:55.551650" elapsed="0.000747"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:55.576445" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:55.576724" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:55.576986" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:55.565869" elapsed="0.011169"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:55.577761" elapsed="0.000105"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:55.577192" elapsed="0.000741"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:55.582359" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:55.578228" elapsed="0.004236"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:55.577981" elapsed="0.004551"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:55.577154" elapsed="0.005422"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:55.582868" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:55.583826" elapsed="0.004712"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:55.583568" elapsed="0.005049"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:55.593505" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:55.589069" elapsed="0.004581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:55.588779" elapsed="0.005035">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:55.583314" elapsed="0.010738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:55.565019" elapsed="0.029239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:55.549746" elapsed="0.044702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:57.597150" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:57.596261" elapsed="0.000960"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:11:57.597940" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:57.597385" elapsed="0.000670"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:57.597344" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:57.622802" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:57.623143" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:57.623337" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:57.611685" elapsed="0.011702"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:57.624167" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:57.623542" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:57.629124" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:57.624610" elapsed="0.004615"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:57.624329" elapsed="0.004962"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:57.623503" elapsed="0.005830"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:57.629577" elapsed="0.000412"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:57.630596" elapsed="0.004468"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:57.630360" elapsed="0.004793"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:57.639977" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:57.635578" elapsed="0.004637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:57.635321" elapsed="0.005041">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:57.630103" elapsed="0.010381">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:57.610862" elapsed="0.029819">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:57.595381" elapsed="0.045538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:11:59.643412" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:11:59.642572" 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-09-12T23:11:59.644234" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:59.643636" elapsed="0.000722"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:59.643592" elapsed="0.000814"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:11:59.668821" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:11:59.669173" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:11:59.669390" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:11:59.658287" elapsed="0.011155"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:11:59.670252" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:11:59.669594" elapsed="0.000770"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:11:59.674802" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:11:59.670675" elapsed="0.004353"/>
</kw>
<status status="PASS" start="2026-09-12T23:11:59.670410" elapsed="0.004688"/>
</branch>
<status status="PASS" start="2026-09-12T23:11:59.669556" elapsed="0.005587"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:11:59.675393" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:11:59.676445" elapsed="0.004342"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:11:59.676195" elapsed="0.004723"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:11:59.685794" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:11:59.681319" elapsed="0.004667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:11:59.681082" elapsed="0.005048">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:11:59.675896" elapsed="0.010356">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:11:59.657434" elapsed="0.029014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:11:59.641722" elapsed="0.044918">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:01.689186" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:01.688354" 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-09-12T23:12:01.689967" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:01.689414" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:01.689372" elapsed="0.000760"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:01.712766" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:01.713117" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:01.713422" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:01.703336" elapsed="0.010140"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:01.714313" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:01.713645" elapsed="0.000782"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:01.718999" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:01.714725" elapsed="0.004378"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:01.714474" elapsed="0.004696"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:01.713601" elapsed="0.005614"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:01.719463" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:01.720468" elapsed="0.004726"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:12:01.720222" elapsed="0.005053"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:01.730090" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:01.725680" elapsed="0.004562">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:12:01.725438" elapsed="0.004950">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:01.719962" elapsed="0.010545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:01.702474" elapsed="0.028230">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:01.687513" elapsed="0.043425">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:03.733502" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:03.732660" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:12:03.734292" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:03.733731" elapsed="0.000772"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:03.733688" elapsed="0.000870"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:03.757734" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:03.758074" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:03.758270" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:03.747891" elapsed="0.010430"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:03.759094" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:03.758477" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:03.763814" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:03.759508" elapsed="0.004465"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:03.759257" elapsed="0.004785"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:03.758439" elapsed="0.005648"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:03.764333" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:03.765334" elapsed="0.004285"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:12:03.765087" elapsed="0.004611"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:03.774481" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:03.770148" elapsed="0.004495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:12:03.769908" elapsed="0.004880">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:03.764780" elapsed="0.010184">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:03.747042" elapsed="0.028145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:03.731815" elapsed="0.043640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:05.778120" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:05.777255" elapsed="0.000927"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:12:05.778878" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:05.778349" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:05.778308" elapsed="0.000756"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:05.801972" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:05.802290" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:05.802506" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:05.793045" elapsed="0.009513"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:05.803379" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:05.802717" elapsed="0.000777"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:05.808095" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:05.803801" elapsed="0.004398"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:05.803542" elapsed="0.004725"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:05.802678" elapsed="0.005634"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:05.808557" elapsed="0.000383"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:05.809540" elapsed="0.004414"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:12:05.809304" elapsed="0.004730"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:05.818935" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:05.814437" elapsed="0.004656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:12:05.814202" elapsed="0.005036">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:05.809048" elapsed="0.010416">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:05.792169" elapsed="0.027503">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:05.776411" elapsed="0.043498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:07.822523" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:07.821664" elapsed="0.000921"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:12:07.823302" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:07.822749" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:07.822707" elapsed="0.000760"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:07.847809" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:07.848156" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:07.848349" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:07.836934" elapsed="0.011465"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:07.849169" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:07.848551" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:07.854129" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:07.849569" elapsed="0.004665"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:07.849327" elapsed="0.004974"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:07.848512" elapsed="0.005836"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:07.854598" elapsed="0.000426"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:07.855632" elapsed="0.004619"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:12:07.855392" elapsed="0.004945"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:07.865428" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:07.860767" elapsed="0.004904">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:12:07.860511" elapsed="0.005306">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:07.855135" elapsed="0.010862">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:07.836071" elapsed="0.030126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:07.820770" elapsed="0.045613">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:09.869125" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:09.868240" elapsed="0.000948"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:12:09.869891" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:09.869356" elapsed="0.000671"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:09.869312" elapsed="0.000767"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:09.893557" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:09.893878" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:09.894103" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:09.883305" elapsed="0.010849"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:09.894902" elapsed="0.000071"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:09.894307" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:09.899477" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:09.895331" elapsed="0.004338"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:09.895083" elapsed="0.004656"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:09.894268" elapsed="0.005517"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:09.900106" elapsed="0.000339"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:09.901111" elapsed="0.004288"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:12:09.900816" elapsed="0.004662"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:09.910554" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:09.905908" elapsed="0.004793">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:12:09.905637" elapsed="0.005241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:09.900558" elapsed="0.010470">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:09.882437" elapsed="0.028803">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:09.867318" elapsed="0.044114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:11.914030" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:11.913197" 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-09-12T23:12:11.914754" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:11.914259" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:11.914217" elapsed="0.000731"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:11.938549" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:11.938826" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:11.939274" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:11.928796" elapsed="0.010533"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:11.940246" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:11.939484" elapsed="0.000878"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:11.944787" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:11.940655" elapsed="0.004267"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:11.940409" elapsed="0.004613"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:11.939445" elapsed="0.005623"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:11.945312" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:11.946291" elapsed="0.004284"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:12:11.946054" elapsed="0.004600"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:11.955473" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:11.951104" elapsed="0.004517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:12:11.950813" elapsed="0.004948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:11.945752" elapsed="0.010159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:11.927968" elapsed="0.028162">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:11.912367" elapsed="0.043948">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-09-12T23:12:11.956493" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>CONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-12T23:10:41.848612" elapsed="90.108214">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:12:11.957289" elapsed="0.000049"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:11.958980" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:12:12.237605" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:12:12.237934" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:12:12.238055" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:12:12.238143" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:11.958590" elapsed="0.279597"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:12.239216" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:12.238583" elapsed="0.000717"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.239943" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:12:12.537579" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:12:12.537937" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:12:12.538072" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:12:12.538154" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:12.239579" elapsed="0.298619"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.539006" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:12:12.600039" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:12:12.600277" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:12:12.600363" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:12:12.600439" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:12.538576" elapsed="0.061906"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.601058" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:12:12.653761" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:12.600790" elapsed="0.053127"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:12.672060" level="INFO">DELETE Request : url=http://10.30.171.31: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=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:12.672153" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:12.672326" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:12.654228" elapsed="0.018147"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:12.692375" level="INFO">DELETE Request : url=http://10.30.171.31: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=node01clly5uksfxt41lfmnw6g1g7gi0.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:12.692634" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:12:12.692830" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:12.672652" elapsed="0.020263"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:12:11.957985" elapsed="0.735089"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-09-12T23:10:40.193138" elapsed="92.500035">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD4XAwi62q8pSe+lys+kvI5Aw2NXen4IEhoIr4/Cdjv0XbCVjcvTtpFkvWt+INNnB+pNvK9hUbZ0MTEjfuoSAOnhdKDNRbL9LPo6LednqjlCsx1UOaQTXA+u/0tzJp6Dd8H32ZXc5w+az8THFFUvUIHwQun+Vrho1TROz3bfoHABPxXX5ntHckI7Hgj5zaNMTyvSLowSTB82A0DgxzZluykyTBWDJPXACbrJJoZEw+gxrgiQ9Ek0WdiGJC8Ds50qYriBK5kzho1brtyFfemwnKQmGzVO7RouSod4El4JLW6hcT4gyHh7Jy2TAXWm/Gn6Hdry0owD+3GgQ0YJaHx7ZCL","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</test>
<test id="s1-s1-t2" name="CallHome over SSH with incorrect device credentials" line="34">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:12.696164" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e6a1f890&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:12:12.695522" elapsed="0.000929"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.696954" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:12:12.709917" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:12.696727" elapsed="0.013366"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.710628" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:12:12.852467" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:12.710410" elapsed="0.142180"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.853144" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:12:12.905614" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:12:12.905824" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPN...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:12.852918" elapsed="0.052993"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:12:12.915019" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPN...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:12:12.906287" elapsed="0.008841"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:12:12.694992" elapsed="0.220270"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.953576" 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-09-12T23:12:12.916227" elapsed="0.037467"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:12:12.962704" 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-09-12T23:12:12.954030" elapsed="0.008787"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-12T23:12:12.915629" elapsed="0.047365"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:12:12.970817" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:12.964201" elapsed="0.006750"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:12:12.972151" 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-09-12T23:12:12.972420" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:12:12.971809" elapsed="0.000662"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:12:12.973480" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:12:12.972770" elapsed="0.000795"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:12.971298" elapsed="0.002371"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:12.971030" elapsed="0.002688"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:12.964155" elapsed="0.009606"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:12:12.974550" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
      ...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:12:12.974069" elapsed="0.000534"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:12:12.975385" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
          },...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:12:12.974909" elapsed="0.000528"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:12:12.976319" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "incorrect" ]
          },
...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:12:12.975819" elapsed="0.000553"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:12:12.977163" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "incorrect" ]
          },
...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:12:12.976648" elapsed="0.000568"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:12.996509" level="INFO">POST Request : url=http://10.30.171.31: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:12:12.996623" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:12:12 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:12.996818" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:12.977475" elapsed="0.019426"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:12:12.997226" elapsed="0.004215"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:12:12.963479" elapsed="0.038083"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:12:13.002243" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-12T23:12:13.308716" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:12:13.309072" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:12:13.309163" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:12:13.309241" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:12:13.001875" elapsed="0.307410"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:13.312428" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:13.311658" elapsed="0.000825"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:13.313211" elapsed="0.000481"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:13.312637" elapsed="0.001133"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:13.312595" elapsed="0.001226"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:13.340406" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:13.340695" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:13.340949" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:13.330453" elapsed="0.010569"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:13.341788" elapsed="0.000086"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:13.341190" elapsed="0.000862"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:13.346499" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:13.342354" elapsed="0.004247"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:13.342106" elapsed="0.004561"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:13.341148" elapsed="0.005561"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:13.347002" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:13.352409" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:13.348004" elapsed="0.004554">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:13.347708" elapsed="0.004994">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:13.347451" elapsed="0.005370">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:13.329491" elapsed="0.023583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:13.310986" elapsed="0.042280">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:15.355965" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:15.355139" 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-09-12T23:12:15.356709" elapsed="0.000468"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:15.356215" elapsed="0.001038"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:15.356173" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:15.380483" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:15.380760" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:15.381113" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:15.370597" elapsed="0.010569"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:15.381917" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:15.381322" elapsed="0.000733"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:15.386461" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:15.382353" elapsed="0.004211"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:15.382104" elapsed="0.004527"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:15.381283" elapsed="0.005391"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:15.386952" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:15.392651" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:15.387946" elapsed="0.004853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:15.387676" elapsed="0.005301">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:15.387424" elapsed="0.005697">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:15.369754" elapsed="0.023567">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:15.354231" elapsed="0.039283">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:17.396171" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:17.395307" elapsed="0.001017"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:17.397072" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:17.396497" elapsed="0.001066"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:17.396454" elapsed="0.001159"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:17.421496" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:17.421775" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:17.422055" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:17.411373" elapsed="0.010737"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:17.422874" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:17.422269" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:17.427522" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:17.423311" elapsed="0.004313"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:17.423062" elapsed="0.004628"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:17.422229" elapsed="0.005505"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:17.428014" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:17.433473" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:17.429001" elapsed="0.004619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:17.428732" elapsed="0.005031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:17.428479" elapsed="0.005436">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:17.410487" elapsed="0.023653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:17.394416" elapsed="0.039984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:19.436958" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:19.436133" 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-09-12T23:12:19.437715" elapsed="0.000476"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:19.437210" elapsed="0.001058"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:19.437167" elapsed="0.001151"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:19.461618" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:19.461960" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:19.462213" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:19.452144" elapsed="0.010120"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:19.463029" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:19.462426" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:19.467586" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:19.463460" elapsed="0.004227"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:19.463213" elapsed="0.004543"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:19.462386" elapsed="0.005412"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:19.468097" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:19.473509" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:19.469086" elapsed="0.004572">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:19.468796" elapsed="0.005009">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:19.468541" elapsed="0.005421">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:19.451275" elapsed="0.022997">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:19.435293" elapsed="0.039175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:21.477020" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:21.476202" elapsed="0.000901"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:21.477771" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:21.477272" elapsed="0.001040"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:21.477229" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:21.502801" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:21.503180" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:21.503377" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:21.491702" elapsed="0.011727"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:21.504206" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:21.503584" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:21.508783" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:21.504611" elapsed="0.004307"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:21.504366" elapsed="0.004621"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:21.503546" elapsed="0.005484"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:21.509298" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:21.515140" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:21.510291" elapsed="0.005002">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:21.510024" elapsed="0.005415">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:21.509737" elapsed="0.005913">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:21.490873" elapsed="0.025010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:21.475350" elapsed="0.040747">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:23.518910" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:23.517993" elapsed="0.000981"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:23.519671" elapsed="0.000748"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:23.519171" elapsed="0.001331"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:23.519104" elapsed="0.001447"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:23.542767" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:23.543096" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:23.543313" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:23.534064" elapsed="0.009299"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:23.544159" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:23.543521" elapsed="0.000753"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:23.548871" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:23.544572" elapsed="0.004406"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:23.544320" elapsed="0.004726"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:23.543483" elapsed="0.005606"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:23.549357" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:23.554913" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:23.550354" elapsed="0.004855">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:23.550088" elapsed="0.005271">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:23.549802" elapsed="0.005679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:23.533212" elapsed="0.022468">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:23.517031" elapsed="0.038871">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:25.558617" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:25.557726" elapsed="0.000954"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:25.559427" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:25.558894" elapsed="0.001067"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:25.558807" elapsed="0.001205"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:25.584356" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:25.584646" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:25.584890" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:25.573770" elapsed="0.011174"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:25.585688" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:25.585101" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:25.590255" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:25.586125" elapsed="0.004320"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:25.585874" elapsed="0.004642"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:25.585062" elapsed="0.005497"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:25.590804" elapsed="0.000389"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:25.596218" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:25.591794" elapsed="0.004574">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:25.591558" elapsed="0.004959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:25.591304" elapsed="0.005336">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:25.572923" elapsed="0.023947">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:25.556794" elapsed="0.040274">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:27.599618" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:27.598769" 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-09-12T23:12:27.600403" elapsed="0.000409"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:27.599874" elapsed="0.001057"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:27.599803" elapsed="0.001181"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:27.624199" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:27.624480" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:27.624751" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:27.614318" elapsed="0.010486"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:27.625594" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:27.624998" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:27.630291" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:27.626031" elapsed="0.004366"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:27.625753" elapsed="0.004712"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:27.624956" elapsed="0.005551"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:27.630751" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:27.636470" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:27.631740" elapsed="0.004878">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:27.631506" elapsed="0.005258">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:27.631251" elapsed="0.005668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:27.613461" elapsed="0.023657">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:27.597958" elapsed="0.039372">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:29.640172" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:29.639341" 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-09-12T23:12:29.640959" elapsed="0.000431"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:29.640426" elapsed="0.001042"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:29.640383" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:29.664687" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:29.665023" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:29.665255" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:29.654898" elapsed="0.010410"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:29.666068" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:29.665465" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:29.670622" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:29.666491" elapsed="0.004232"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:29.666244" elapsed="0.004546"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:29.665427" elapsed="0.005436"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:29.671112" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:29.676492" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:29.672107" elapsed="0.004534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:29.671832" elapsed="0.004952">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:29.671579" elapsed="0.005359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:29.654050" elapsed="0.023086">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:29.638463" elapsed="0.038884">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:31.680019" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:31.679176" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:31.680768" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:31.680271" elapsed="0.001033"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:31.680206" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:31.706056" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:31.706369" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:31.706588" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:31.695062" elapsed="0.011579"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:31.707424" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:31.706798" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:31.712019" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:31.707882" elapsed="0.004238"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:31.707583" elapsed="0.004604"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:31.706760" elapsed="0.005469"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:31.712493" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:31.717886" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:31.713488" elapsed="0.004550">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:31.713224" elapsed="0.004959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:31.712970" elapsed="0.005366">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:31.694209" elapsed="0.024326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:31.678362" elapsed="0.040459">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:33.721572" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:33.720606" elapsed="0.001030"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:33.722362" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:33.721803" elapsed="0.001082"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:33.721760" elapsed="0.001176"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:33.747488" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:33.747772" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:33.748011" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:33.736334" elapsed="0.011727"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:33.748802" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:33.748217" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:33.753510" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:33.749249" elapsed="0.004363"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:33.748992" elapsed="0.004686"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:33.748180" elapsed="0.005541"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:33.753996" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:33.759765" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:33.754982" elapsed="0.004980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:33.754715" elapsed="0.005403">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:33.754463" elapsed="0.005796">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:33.735471" elapsed="0.025122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:33.719749" elapsed="0.041037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:35.763577" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:35.762672" elapsed="0.000970"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:35.764379" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:35.763813" elapsed="0.001085"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:35.763769" elapsed="0.001182"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:35.790476" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:35.790762" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:35.790995" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:35.778532" elapsed="0.012516"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:35.791800" elapsed="0.000319"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:35.791203" elapsed="0.000998"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:35.796829" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:35.792535" elapsed="0.004437"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:35.792251" elapsed="0.004790"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:35.791165" elapsed="0.005921"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:35.797359" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:35.802766" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:35.798369" elapsed="0.004579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:35.798100" elapsed="0.004991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:35.797809" elapsed="0.005523">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:35.777603" elapsed="0.025939">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:35.761737" elapsed="0.041998">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:37.806584" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:37.805736" 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-09-12T23:12:37.807371" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:37.806815" elapsed="0.001074"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:37.806773" elapsed="0.001167"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:37.831487" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:37.831773" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:37.832035" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:37.822012" elapsed="0.010076"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:37.832868" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:37.832245" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:37.837513" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:37.833287" elapsed="0.004332"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:37.833030" elapsed="0.004656"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:37.832207" elapsed="0.005523"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:37.838008" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:37.843624" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:37.838999" elapsed="0.004893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:37.838733" elapsed="0.005310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:37.838479" elapsed="0.005684">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:37.821145" elapsed="0.023238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:37.804805" elapsed="0.039770">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:39.847185" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:39.846345" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:39.847963" elapsed="0.000428"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:39.847430" elapsed="0.001039"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:39.847368" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:39.874486" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:39.874782" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:39.875021" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:39.862897" elapsed="0.012179"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:39.875926" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:39.875240" elapsed="0.000804"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:39.880710" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:39.876370" elapsed="0.004595"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:39.876094" elapsed="0.004944"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:39.875199" elapsed="0.005883"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:39.881335" elapsed="0.000395"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:39.887156" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:39.882402" elapsed="0.004905">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:39.882137" elapsed="0.005338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:39.881875" elapsed="0.005726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:39.862041" elapsed="0.025758">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:39.845519" elapsed="0.042513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:41.890624" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:41.889789" 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-09-12T23:12:41.891380" elapsed="0.000431"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:41.890882" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:41.890810" elapsed="0.001159"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:41.915064" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:41.915343" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:41.915654" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:41.905138" elapsed="0.010568"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:41.916500" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:41.915896" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:41.921071" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:41.916936" elapsed="0.004239"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:41.916660" elapsed="0.004583"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:41.915825" elapsed="0.005462"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:41.921557" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:41.926935" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:41.922545" elapsed="0.004538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:41.922288" elapsed="0.004937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:41.922032" elapsed="0.005316">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:41.904290" elapsed="0.023276">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:41.888978" elapsed="0.038777">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:43.930619" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:43.929746" 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-09-12T23:12:43.931418" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:43.930884" elapsed="0.001075"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:43.930810" elapsed="0.001199"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:43.956217" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:43.956536" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:43.956754" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:43.945655" elapsed="0.011150"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:43.957578" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:43.956993" elapsed="0.000696"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:43.962116" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:43.958007" elapsed="0.004211"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:43.957734" elapsed="0.004550"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:43.956954" elapsed="0.005373"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:43.962592" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:43.967981" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:43.963569" elapsed="0.004563">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:43.963313" elapsed="0.004962">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:43.963063" elapsed="0.005331">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:43.944803" elapsed="0.023810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:43.928763" elapsed="0.040039">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:45.971596" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:45.970755" elapsed="0.000906"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:45.972384" elapsed="0.000433"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:45.971826" elapsed="0.001099"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:45.971784" elapsed="0.001191"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:45.996454" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:45.996780" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:45.997010" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:45.986353" elapsed="0.010708"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:45.997872" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:45.997221" elapsed="0.000766"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:46.002764" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:45.998288" elapsed="0.004612"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:45.998033" elapsed="0.004936"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:45.997182" elapsed="0.005830"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:46.003255" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:46.009083" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:46.004259" elapsed="0.004978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:46.004015" elapsed="0.005367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:46.003725" elapsed="0.005805">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:45.985478" elapsed="0.024249">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:45.969912" elapsed="0.040127">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:48.012612" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:48.011761" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:48.013374" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:48.012871" elapsed="0.001049"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:48.012802" elapsed="0.001169"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:48.037701" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:48.038051" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:48.038248" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:48.027271" elapsed="0.011026"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:48.039078" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:48.038451" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:48.043678" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:48.039496" elapsed="0.004284"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:48.039238" elapsed="0.004638"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:48.038413" elapsed="0.005508"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:48.044164" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:48.049509" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:48.045155" elapsed="0.004532">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:48.044917" elapsed="0.004915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:48.044629" elapsed="0.005358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:48.026399" elapsed="0.023881">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:48.010935" elapsed="0.039536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:50.053374" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:50.052529" 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-09-12T23:12:50.054193" elapsed="0.000434"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:50.053633" elapsed="0.001073"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:50.053588" elapsed="0.001165"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:50.082743" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:50.083076" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:50.083289" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:50.070992" elapsed="0.012348"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:50.084113" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:50.083495" elapsed="0.000730"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:50.088664" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:50.084514" elapsed="0.004251"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:50.084271" elapsed="0.004561"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:50.083457" elapsed="0.005447"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:50.089149" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:50.094475" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:50.090138" elapsed="0.004518">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:50.089894" elapsed="0.004907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:50.089609" elapsed="0.005432">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:50.070093" elapsed="0.025148">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:50.051532" elapsed="0.043897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:52.098101" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:52.097265" 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-09-12T23:12:52.098881" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:52.098332" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:52.098291" elapsed="0.001128"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:52.123697" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:52.124016" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:52.124212" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:52.112953" elapsed="0.011311"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:52.125042" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:52.124421" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:52.129556" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:52.125448" elapsed="0.004234"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:52.125202" elapsed="0.004554"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:52.124382" elapsed="0.005417"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:52.130077" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:52.135812" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:52.131064" elapsed="0.005029">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:52.130796" elapsed="0.005447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:52.130520" elapsed="0.005844">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:52.112019" elapsed="0.024543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:52.096382" elapsed="0.040387">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:54.139296" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:54.138446" 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-09-12T23:12:54.140072" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:54.139522" elapsed="0.001031"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:54.139481" elapsed="0.001122"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:54.165542" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:54.165894" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:54.166096" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:54.153871" elapsed="0.012276"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:54.166924" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:54.166303" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:54.171444" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:54.167328" elapsed="0.004304"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:54.167082" elapsed="0.004644"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:54.166265" elapsed="0.005504"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:54.172044" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:54.177411" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:54.173027" elapsed="0.004529">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:54.172759" elapsed="0.004965">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:54.172484" elapsed="0.005395">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:54.153029" elapsed="0.025054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:54.137595" elapsed="0.040683">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:56.180923" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:56.180065" elapsed="0.000925"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:12:56.181656" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:56.181157" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:56.181115" elapsed="0.001127"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:56.208433" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:56.208750" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:56.209082" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:56.195959" elapsed="0.013175"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:56.209938" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:56.209300" elapsed="0.000757"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:56.214511" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:56.210356" elapsed="0.004256"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:56.210106" elapsed="0.004595"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:56.209253" elapsed="0.005491"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:56.215020" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:56.220457" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:56.216046" elapsed="0.004561">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:56.215754" elapsed="0.005028">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:56.215463" elapsed="0.005477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:56.195107" elapsed="0.026031">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:56.179186" elapsed="0.042140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:12:58.223905" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:12:58.223069" 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-09-12T23:12:58.224639" elapsed="0.000461"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:58.224138" elapsed="0.001039"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:58.224095" elapsed="0.001130"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:12:58.251321" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:12:58.251612" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:12:58.251828" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:12:58.238609" elapsed="0.013300"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:12:58.252638" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:12:58.252072" elapsed="0.000703"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:12:58.257282" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:12:58.253103" elapsed="0.004284"/>
</kw>
<status status="PASS" start="2026-09-12T23:12:58.252822" elapsed="0.004635"/>
</branch>
<status status="PASS" start="2026-09-12T23:12:58.252034" elapsed="0.005467"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:12:58.257779" elapsed="0.000372"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:12:58.263568" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:12:58.258806" elapsed="0.004940">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:12:58.258521" elapsed="0.005405">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:12:58.258265" elapsed="0.005784">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:12:58.237784" elapsed="0.026462">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:58.222223" elapsed="0.042209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:00.267411" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:00.266485" elapsed="0.000994"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:00.268270" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:00.267676" elapsed="0.001109"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:00.267618" elapsed="0.001251"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:00.291515" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:00.291878" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:00.292075" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:00.282692" elapsed="0.009434"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:00.292901" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:00.292281" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:00.297476" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:00.293309" elapsed="0.004270"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:00.293061" elapsed="0.004586"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:00.292243" elapsed="0.005447"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:00.297988" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:00.303446" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:00.298988" elapsed="0.004612">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:00.298690" elapsed="0.005056">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:00.298434" elapsed="0.005501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:00.281895" elapsed="0.022268">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:00.265515" elapsed="0.038929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:02.307436" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:02.306556" elapsed="0.000946"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:02.308228" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:02.307671" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:02.307628" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:02.334896" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:02.335182" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:02.335398" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:02.322621" elapsed="0.012829"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:02.336233" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:02.335609" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:02.340867" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:02.336658" elapsed="0.004316"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:02.336392" elapsed="0.004652"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:02.335571" elapsed="0.005515"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:02.341330" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:02.346748" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:02.342317" elapsed="0.004632">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:02.342079" elapsed="0.005018">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:02.341769" elapsed="0.005448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:02.321769" elapsed="0.025740">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:02.305631" elapsed="0.042072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:04.350433" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:04.349567" elapsed="0.000930"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:04.351224" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:04.350665" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:04.350620" elapsed="0.001139"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:04.374740" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:04.375091" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:04.375287" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:04.365354" elapsed="0.009985"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:04.376235" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:04.375496" elapsed="0.000902"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:04.381181" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:04.376818" elapsed="0.004526"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:04.376473" elapsed="0.004961"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:04.375458" elapsed="0.006023"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:04.381732" elapsed="0.000394"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:04.387518" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:04.382729" elapsed="0.004938">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:04.382490" elapsed="0.005323">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:04.382235" elapsed="0.005838">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:04.364501" elapsed="0.023774">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:04.348672" elapsed="0.039790">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:06.390450" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:06.389904" elapsed="0.000588"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:06.390963" elapsed="0.000259"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:06.390607" elapsed="0.000662"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:06.390576" elapsed="0.000726"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:06.409110" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:06.409333" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:06.409483" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:06.400544" elapsed="0.008977"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:06.410167" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:06.409654" elapsed="0.000594"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:06.413437" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:06.410467" elapsed="0.003064"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:06.410284" elapsed="0.003291"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:06.409619" elapsed="0.003988"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:06.413773" elapsed="0.000269"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:06.416642" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:06.414478" elapsed="0.002296">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:06.414303" elapsed="0.002557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:06.414121" elapsed="0.002810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:06.399954" elapsed="0.017074">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:06.389275" elapsed="0.027843">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:08.419918" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:08.419082" 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-09-12T23:13:08.420676" elapsed="0.000464"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:08.420169" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:08.420126" elapsed="0.001141"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:08.445565" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:08.445891" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:08.446137" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:08.435166" elapsed="0.011024"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:08.446976" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:08.446345" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:08.451664" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:08.447399" elapsed="0.004485"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:08.447139" elapsed="0.004836"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:08.446307" elapsed="0.005714"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:08.452273" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:08.457674" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:08.453290" elapsed="0.004534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:08.453052" elapsed="0.004971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:08.452719" elapsed="0.005430">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:08.434301" elapsed="0.024045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:08.418079" elapsed="0.040456">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:10.461220" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:10.460325" elapsed="0.000958"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:10.461998" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:10.461448" elapsed="0.001038"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:10.461407" elapsed="0.001128"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:10.486384" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:10.486676" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:10.487011" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:10.476216" elapsed="0.010851"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:10.487789" elapsed="0.000079"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:10.487224" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:10.492390" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:10.488259" elapsed="0.004234"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:10.487998" elapsed="0.004562"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:10.487185" elapsed="0.005419"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:10.492884" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:10.498719" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:10.493879" elapsed="0.005026">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:10.493612" elapsed="0.005465">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:10.493356" elapsed="0.005847">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:10.475359" elapsed="0.024041">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:10.459475" elapsed="0.040122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:12.502318" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:12.501466" 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-09-12T23:13:12.503110" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:12.502545" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:12.502502" elapsed="0.001148"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:12.530069" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:12.530361" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:12.530554" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:12.516969" elapsed="0.013636"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:12.531384" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:12.530758" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:12.536000" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:12.531791" elapsed="0.004335"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:12.531542" elapsed="0.004650"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:12.530720" elapsed="0.005517"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:12.536482" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:12.541897" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:12.537482" elapsed="0.004591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:12.537243" elapsed="0.004974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:12.536954" elapsed="0.005385">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:12.516139" elapsed="0.026394">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:12.500576" elapsed="0.042142">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:14.545630" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:14.544659" elapsed="0.001050"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:14.546495" elapsed="0.000494"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:14.545920" elapsed="0.001179"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:14.545873" elapsed="0.001283"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:14.575285" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:14.575593" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:14.575825" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:14.561607" elapsed="0.014311"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:14.576733" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:14.576110" elapsed="0.000780"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:14.581685" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:14.577252" elapsed="0.004543"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:14.576945" elapsed="0.004958"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:14.576041" elapsed="0.005914"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:14.582269" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:14.588095" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:14.583490" elapsed="0.004892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:14.583231" elapsed="0.005304">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:14.582756" elapsed="0.005905">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:14.560654" elapsed="0.028258">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:14.543716" elapsed="0.045533">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:16.591999" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:16.591163" 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-09-12T23:13:16.592756" elapsed="0.000460"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:16.592252" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:16.592208" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:16.619937" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:16.620258" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:16.620451" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:16.606765" elapsed="0.013736"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:16.621276" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:16.620656" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:16.625948" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:16.621719" elapsed="0.004332"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:16.621450" elapsed="0.004690"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:16.620617" elapsed="0.005570"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:16.626434" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:16.632226" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:16.627421" elapsed="0.004957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:16.627185" elapsed="0.005338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:16.626906" elapsed="0.005739">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:16.605930" elapsed="0.027030">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:16.590280" elapsed="0.042896">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:18.635740" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:18.634928" elapsed="0.000873"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:18.636521" elapsed="0.000443"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:18.635995" elapsed="0.001046"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:18.635952" elapsed="0.001139"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:18.663590" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:18.663917" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:18.664113" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:18.650409" elapsed="0.013782"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:18.665171" elapsed="0.000070"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:18.664393" elapsed="0.000927"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:18.671245" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:18.665696" elapsed="0.005673"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:18.665381" elapsed="0.006065"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:18.664344" elapsed="0.007152"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:18.671786" elapsed="0.000459"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:18.677511" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:18.673039" elapsed="0.004626">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:18.672685" elapsed="0.005124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:18.672385" elapsed="0.005676">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:18.649555" elapsed="0.028737">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:18.634062" elapsed="0.044423">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:20.681173" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:20.680345" 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-09-12T23:13:20.681998" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:20.681427" elapsed="0.001082"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:20.681384" elapsed="0.001174"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:20.707821" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:20.708150" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:20.708395" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:20.696332" elapsed="0.012116"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:20.709223" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:20.708604" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:20.713879" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:20.709642" elapsed="0.004346"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:20.709384" elapsed="0.004680"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:20.708567" elapsed="0.005541"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:20.714378" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:20.719752" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:20.715369" elapsed="0.004679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:20.715107" elapsed="0.005112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:20.714818" elapsed="0.005530">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:20.695470" elapsed="0.025077">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:20.679470" elapsed="0.041270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:22.723195" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:22.722387" 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-09-12T23:13:22.723961" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:22.723436" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:22.723395" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:22.750656" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:22.750973" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:22.751166" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:22.737796" elapsed="0.013422"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:22.752013" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:22.751397" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:22.756633" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:22.752454" elapsed="0.004375"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:22.752172" elapsed="0.004760"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:22.751358" elapsed="0.005618"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:22.757225" elapsed="0.000357"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:22.763003" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:22.758219" elapsed="0.004935">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:22.757980" elapsed="0.005342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:22.757692" elapsed="0.005759">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:22.736980" elapsed="0.026672">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:22.721547" elapsed="0.042326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:24.766415" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:24.765576" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:24.767170" elapsed="0.000429"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:24.766643" elapsed="0.001033"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:24.766601" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:24.791536" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:24.791812" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:24.792139" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:24.781064" elapsed="0.011128"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:24.792979" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:24.792374" elapsed="0.000720"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:24.797599" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:24.793414" elapsed="0.004288"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:24.793140" elapsed="0.004630"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:24.792335" elapsed="0.005478"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:24.798090" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:24.803528" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:24.799075" elapsed="0.004600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:24.798805" elapsed="0.005013">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:24.798552" elapsed="0.005441">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:24.780218" elapsed="0.023980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:24.764730" elapsed="0.039681">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:26.806272" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:26.805685" elapsed="0.000629"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:26.806803" elapsed="0.000310"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:26.806447" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:26.806417" elapsed="0.000780"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:26.835239" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:26.835551" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:26.835797" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:26.822644" elapsed="0.013239"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:26.836643" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:26.836043" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:26.841276" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:26.837080" elapsed="0.004323"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:26.836801" elapsed="0.004671"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:26.836004" elapsed="0.005513"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:26.841759" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:26.847311" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:26.842737" elapsed="0.004764">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:26.842499" elapsed="0.005153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:26.842227" elapsed="0.005547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:26.821784" elapsed="0.026219">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:26.805100" elapsed="0.043092">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:28.850802" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:28.849993" 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-09-12T23:13:28.851598" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:28.851064" elapsed="0.001058"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:28.851021" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:28.878609" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:28.878932" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:28.879128" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:28.865515" elapsed="0.013665"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:28.879972" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:28.879338" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:28.884575" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:28.880405" elapsed="0.004274"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:28.880134" elapsed="0.004615"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:28.879299" elapsed="0.005493"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:28.885070" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:28.890791" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:28.886054" elapsed="0.004922">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:28.885784" elapsed="0.005338">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:28.885531" elapsed="0.005714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:28.864658" elapsed="0.026807">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:28.849147" elapsed="0.042600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:30.894345" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:30.893515" elapsed="0.000894"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:30.895148" elapsed="0.000431"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:30.894607" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:30.894565" elapsed="0.001140"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:30.923513" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:30.923809" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:30.924060" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:30.909021" elapsed="0.015090"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:30.924942" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:30.924276" elapsed="0.000782"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:30.929548" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:30.925356" elapsed="0.004298"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:30.925105" elapsed="0.004617"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:30.924236" elapsed="0.005529"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:30.930041" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:30.935592" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:30.931043" elapsed="0.004697">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:30.930769" elapsed="0.005151">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:30.930502" elapsed="0.005545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:30.908171" elapsed="0.028186">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:30.892637" elapsed="0.043935">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:32.939169" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:32.938313" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:32.939965" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:32.939405" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:32.939361" elapsed="0.001168"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:32.964799" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:32.965141" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:32.965359" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:32.954761" elapsed="0.010649"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:32.966194" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:32.965596" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:32.970777" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:32.966629" elapsed="0.004281"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:32.966355" elapsed="0.004624"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:32.965556" elapsed="0.005467"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:32.971268" elapsed="0.000445"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:32.976730" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:32.972353" elapsed="0.004555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:32.972109" elapsed="0.004945">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:32.971821" elapsed="0.005449">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:32.953914" elapsed="0.023579">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:32.937464" elapsed="0.040232">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:34.980268" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:34.979429" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:34.981050" elapsed="0.000407"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:34.980498" elapsed="0.001067"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:34.980456" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:35.004732" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:35.005056" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:35.005251" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:34.995077" elapsed="0.010225"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:35.006081" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:35.005458" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:35.010701" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:35.006491" elapsed="0.004315"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:35.006241" elapsed="0.004663"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:35.005421" elapsed="0.005529"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:35.011198" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:35.017113" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:35.012185" elapsed="0.005171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:35.011946" elapsed="0.005557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:35.011663" elapsed="0.005991">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:34.994217" elapsed="0.023667">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:34.978595" elapsed="0.039483">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:37.020692" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:37.019870" 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-09-12T23:13:37.021481" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:37.020952" elapsed="0.001067"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:37.020908" elapsed="0.001162"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:37.046035" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:37.046313" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:37.046504" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:37.035382" elapsed="0.011174"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:37.047331" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:37.046732" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:37.052032" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:37.047775" elapsed="0.004451"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:37.047489" elapsed="0.004806"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:37.046693" elapsed="0.005647"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:37.052610" elapsed="0.000371"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:37.058177" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:37.053610" elapsed="0.004713">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:37.053344" elapsed="0.005122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:37.053090" elapsed="0.005543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:37.034535" elapsed="0.024328">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:37.019019" elapsed="0.040128">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:39.061824" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:39.060997" 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-09-12T23:13:39.062604" elapsed="0.000483"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:39.062084" elapsed="0.001080"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:39.062043" elapsed="0.001172"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:39.091500" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:39.091902" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:39.092223" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:39.078663" elapsed="0.013614"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:39.093077" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:39.092437" elapsed="0.000756"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:39.097704" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:39.093492" elapsed="0.004315"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:39.093241" elapsed="0.004663"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:39.092397" elapsed="0.005553"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:39.098198" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:39.103677" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:39.099190" elapsed="0.004637">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:39.098948" elapsed="0.005057">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:39.098662" elapsed="0.005469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:39.077523" elapsed="0.026809">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:39.060092" elapsed="0.044432">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:41.107099" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:41.106256" 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-09-12T23:13:41.107886" elapsed="0.000415"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:41.107328" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:41.107286" elapsed="0.001143"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:41.135131" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:41.135446" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:41.135644" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:41.122407" elapsed="0.013319"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:41.136497" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:41.135920" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:41.142556" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:41.137029" elapsed="0.005686"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:41.136655" elapsed="0.006146"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:41.135878" elapsed="0.007015"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:41.143198" elapsed="0.000405"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:41.149478" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:41.144460" elapsed="0.005171">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:41.144137" elapsed="0.005675">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:41.143773" elapsed="0.006200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:41.121547" elapsed="0.028622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:41.105398" elapsed="0.044963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:43.153057" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:43.152198" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:13:43.153816" elapsed="0.000441"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:43.153292" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:43.153249" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:43.179594" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:43.179948" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:43.180149" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:43.167733" elapsed="0.012469"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:43.180984" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:43.180358" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:43.185928" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:43.181394" elapsed="0.004642"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:43.181145" elapsed="0.004962"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:43.180318" elapsed="0.005834"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:43.186416" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:43.191875" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:43.187436" elapsed="0.004592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:43.187180" elapsed="0.004990">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:43.186923" elapsed="0.005371">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:43.166909" elapsed="0.025680">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:43.151342" elapsed="0.041578">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:45.195465" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:45.194616" 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-09-12T23:13:45.196245" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:45.195692" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:45.195650" elapsed="0.001152"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:45.222415" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0lltumyhuc7s332akv90hpj231.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:45.222693" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:45.222966" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:45.210724" elapsed="0.012295"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:45.223792" elapsed="0.000099"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:45.223175" elapsed="0.000801"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:45.228506" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:45.224304" elapsed="0.004304"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:45.224044" elapsed="0.004632"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:45.223136" elapsed="0.005584"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:45.229018" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:45.234921" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:45.230001" elapsed="0.005072">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:13:45.229708" elapsed="0.005511">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:45.229459" elapsed="0.005883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:45.209901" elapsed="0.025728">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:45.193752" elapsed="0.042123">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-09-12T23:13:45.236058" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-12T23:12:13.309684" elapsed="91.926599">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:13:45.236717" elapsed="0.000085"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:45.238423" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:13:45.495574" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:13:45.495960" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:13:45.496059" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:13:45.496140" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:45.238080" elapsed="0.258106"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:45.497227" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:45.496584" elapsed="0.000728"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:45.497974" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:13:45.769300" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:13:45.769622" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:13:45.769710" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:13:45.769813" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:45.497590" elapsed="0.272300"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:45.770653" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:13:45.845477" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:13:45.845763" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:13:45.845919" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:13:45.846002" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:45.770266" elapsed="0.075780"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:45.846637" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:13:45.893275" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:45.846407" elapsed="0.046998"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:45.910154" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0lltumyhuc7s332akv90hpj231.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:45.910261" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:45.910566" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:45.893716" elapsed="0.016908"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:45.920919" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0lltumyhuc7s332akv90hpj231.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:45.921199" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:13:45.921421" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:45.911014" elapsed="0.010463"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:13:45.237425" elapsed="0.684199"/>
</kw>
<doc>Correct credentials should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-09-12T23:12:12.693780" elapsed="93.227945">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQD2XymyMVPX/JoNdRVJ/KMJCWxwwZeY2BJFQkqjQLsOLjKn2NNgqIyu3qK4/s1CR0/cArjndPEf1WQkk3z1h7aZe1oo/G7MPo4HHRiYUXWhR4PnupDr/DaLFJI5U9tUBaKhBR9ri4Q49aJzBaknmpKTIudB2NbrQowi7Ya6BDPNJbh88ZuxZAJanfEvVU4Rd9WFwPruErcOb3x6W+/05ikUqB8w5B3cOJs3d42yAdo6yrv9R3hj9MPHO5tJFnDY8obbKGFcyX2MCa/EPI1EC5noYxeVJw6PuNO2ZHXJQ2LIyENUEpFxgPQ3WeSwg4IdvQkbR5lSbwgHXD6aUOqhtmbp","credentials":{"username":"root","passwords":["incorrect"]}}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</test>
<test id="s1-s1-t3" name="CallHome over SSH with correct global credentials" line="53">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:45.925050" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e6a70a90&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:13:45.924461" elapsed="0.000964"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:45.926005" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:13:45.941268" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:45.925740" elapsed="0.015648"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:45.941948" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:13:46.094121" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:45.941684" elapsed="0.152565"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:46.094758" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:13:46.145175" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:13:46.145409" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:46.094550" elapsed="0.050914"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:13:46.153932" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:13:46.145876" elapsed="0.008154"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:13:45.923911" elapsed="0.230244"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:13:46.193981" 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-09-12T23:13:46.155078" elapsed="0.039021"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:13:46.203214" 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-09-12T23:13:46.194381" elapsed="0.008955"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-12T23:13:46.154498" elapsed="0.048968"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:13:46.204804" 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-09-12T23:13:46.205194" level="INFO">${template} = {
  "credentials": {
    "username": "{username}",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${template}</var>
<arg>${CREATE_GLOBAL_CREDENTIALS_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:13:46.204486" elapsed="0.000760"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:13:46.206049" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:13:46.205528" elapsed="0.000573"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:13:46.206873" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "root" ]
  }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:13:46.206379" elapsed="0.000548"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:46.234562" level="INFO">PUT Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '79', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "credentials": {
    "username": "root",
    "passwords": [ "root" ]
  }
}
 
 </msg>
<msg time="2026-09-12T23:13:46.234664" level="INFO">PUT Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:13:46 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:46.234916" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${global_config_url}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:46.207186" elapsed="0.027785"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:46.235278" elapsed="0.004432"/>
</kw>
<arg>root</arg>
<arg>root</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-09-12T23:13:46.203881" elapsed="0.036007"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:13:46.254829" 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-09-12T23:13:46.255132" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:13:46.254516" elapsed="0.000668"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:13:46.256168" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:13:46.255482" elapsed="0.000772"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:46.254002" elapsed="0.002357"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:46.247355" elapsed="0.009051"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:13:46.256744" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:46.256457" elapsed="0.000437"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:46.247312" elapsed="0.009627"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:13:46.257668" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:13:46.257195" elapsed="0.000526"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:13:46.258507" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:13:46.258054" elapsed="0.000505"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:13:46.259325" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:13:46.258884" elapsed="0.000493"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:13:46.260138" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCi...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:13:46.259654" elapsed="0.000537"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:46.283364" level="INFO">POST Request : url=http://10.30.171.31: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=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:13:46.283549" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:46.283728" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:46.260462" elapsed="0.023316"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:46.284140" elapsed="0.004274"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:13:46.240382" elapsed="0.048155"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:13:46.289215" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-12T23:13:46.585392" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:13:46.585712" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:13:46.585820" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:13:46.585943" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:13:46.288871" elapsed="0.297120"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:46.589188" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:46.588415" elapsed="0.000828"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:13:46.589943" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:46.589399" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:46.589357" elapsed="0.000748"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:46.616250" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:46.616579" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:46.616823" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:46.604029" elapsed="0.012880"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:46.617633" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:46.617067" elapsed="0.000676"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:46.622360" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:46.618113" elapsed="0.004352"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:46.617858" elapsed="0.004675"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:46.617028" elapsed="0.005549"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:46.622871" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:46.623826" elapsed="0.004445"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:46.623565" elapsed="0.004785"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:46.633309" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:46.628872" elapsed="0.004583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:46.628513" elapsed="0.005175">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:46.623310" elapsed="0.010551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:46.603164" elapsed="0.030901">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:46.587687" elapsed="0.046567">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:48.636821" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:48.636030" 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-09-12T23:13:48.637669" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:48.637098" elapsed="0.000686"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:48.637055" elapsed="0.000819"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:48.662514" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:48.662805" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:48.663088" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:48.651185" elapsed="0.011955"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:48.663986" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:48.663317" elapsed="0.000783"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:48.669069" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:48.664400" elapsed="0.004776"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:48.664148" elapsed="0.005097"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:48.663273" elapsed="0.006018"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:48.669544" elapsed="0.000380"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:48.670537" elapsed="0.004283"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:48.670291" elapsed="0.004657"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:48.679678" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:48.675348" elapsed="0.004623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:48.675110" elapsed="0.005010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:48.670034" elapsed="0.010208">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:48.650294" elapsed="0.030147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:48.635180" elapsed="0.045450">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:50.683229" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:50.682337" 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="NOT RUN" start="2026-09-12T23:13:50.684022" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:50.683461" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:50.683418" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:50.709367" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:50.709644" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:50.709867" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:50.697869" elapsed="0.012076"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:50.710671" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:50.710103" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:50.715320" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:50.711129" elapsed="0.004292"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:50.710829" elapsed="0.004661"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:50.710064" elapsed="0.005470"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:50.715776" elapsed="0.000482"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:50.716912" elapsed="0.004322"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:50.716624" elapsed="0.004689"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:50.726121" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:50.721708" elapsed="0.004557">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:50.721473" elapsed="0.004932">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:50.716369" elapsed="0.010158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:50.696970" elapsed="0.029751">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:50.681497" elapsed="0.045465">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:52.729561" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:52.728719" 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-09-12T23:13:52.730361" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:52.729789" elapsed="0.000685"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:52.729748" elapsed="0.000774"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:52.754519" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:52.754806" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:52.755103" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:52.744302" elapsed="0.010855"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:52.756087" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:52.755323" elapsed="0.000879"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:52.760655" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:52.756500" elapsed="0.004258"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:52.756251" elapsed="0.004575"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:52.755281" elapsed="0.005628"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:52.761184" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:52.762183" elapsed="0.004266"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:52.761916" elapsed="0.004614"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:52.771289" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:52.766980" elapsed="0.004454">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:52.766691" elapsed="0.004882">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:52.761628" elapsed="0.010064">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:52.743447" elapsed="0.028474">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:52.727873" elapsed="0.044265">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:54.774656" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:54.773812" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:13:54.775463" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:54.774911" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:54.774868" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:54.800578" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:54.801011" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:54.801209" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:54.788737" elapsed="0.012524"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:54.802049" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:54.801415" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:54.807133" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:54.802456" elapsed="0.004783"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:54.802208" elapsed="0.005099"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:54.801376" elapsed="0.005976"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:54.807599" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:54.808582" elapsed="0.004398"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:54.808347" elapsed="0.004730"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:54.817790" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:54.813476" elapsed="0.004492">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:54.813239" elapsed="0.004893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:54.808093" elapsed="0.010160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:54.787919" elapsed="0.030531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:54.773022" elapsed="0.045617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:56.821223" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:56.820328" elapsed="0.000957"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:13:56.822110" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:56.821552" elapsed="0.000676"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:56.821508" elapsed="0.000770"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:56.846406" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:56.846680" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:56.846902" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:56.835482" elapsed="0.011475"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:56.847712" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:56.847140" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:56.852320" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:56.848172" elapsed="0.004249"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:56.847904" elapsed="0.004583"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:56.847098" elapsed="0.005432"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:56.852777" elapsed="0.000386"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:56.853757" elapsed="0.004326"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:56.853521" elapsed="0.004645"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:56.863162" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:56.858576" elapsed="0.004738">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:56.858330" elapsed="0.005126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:56.853271" elapsed="0.010309">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:56.834638" elapsed="0.029145">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:56.819489" elapsed="0.044631">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:13:58.866658" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:13:58.865802" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:13:58.867502" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:58.866916" elapsed="0.000700"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:58.866873" elapsed="0.000792"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:13:58.894899" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:13:58.895223" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:13:58.895457" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:13:58.883915" elapsed="0.011594"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:13:58.896369" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:13:58.895665" elapsed="0.000817"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:13:58.900887" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:13:58.896777" elapsed="0.004213"/>
</kw>
<status status="PASS" start="2026-09-12T23:13:58.896531" elapsed="0.004527"/>
</branch>
<status status="PASS" start="2026-09-12T23:13:58.895626" elapsed="0.005498"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:13:58.901369" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:13:58.902344" elapsed="0.004382"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:13:58.902104" elapsed="0.004701"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:13:58.911679" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:13:58.907258" elapsed="0.004565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:13:58.906997" elapsed="0.005001">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:13:58.901806" elapsed="0.010336">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:13:58.883051" elapsed="0.029375">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:13:58.864988" elapsed="0.047630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:00.915104" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:00.914306" elapsed="0.000879"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:00.915831" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:00.915347" elapsed="0.000627"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:00.915308" elapsed="0.000714"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:00.941677" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:00.942012" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:00.942229" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:00.929383" elapsed="0.012898"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:00.943026" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:00.942433" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:00.947598" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:00.943448" elapsed="0.004252"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:00.943201" elapsed="0.004564"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:00.942395" elapsed="0.005415"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:00.948082" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:00.949048" elapsed="0.004818"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:00.948783" elapsed="0.005163"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:00.958653" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:00.954361" elapsed="0.004438">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:00.954105" elapsed="0.004868">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:00.948534" elapsed="0.010673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:00.928545" elapsed="0.030864">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:00.913484" elapsed="0.046109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:02.962136" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:02.961335" elapsed="0.000881"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:02.962897" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:02.962380" elapsed="0.000628"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:02.962337" elapsed="0.000720"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:02.985970" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:02.986272" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:02.986466" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:02.976373" elapsed="0.010142"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:02.987281" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:02.986667" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:02.991828" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:02.987680" elapsed="0.004278"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:02.987436" elapsed="0.004587"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:02.986628" elapsed="0.005437"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:02.992325" elapsed="0.000323"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:02.993285" elapsed="0.004289"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:02.993030" elapsed="0.004621"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:03.002717" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:02.998072" elapsed="0.004834">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:02.997809" elapsed="0.005342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:02.992752" elapsed="0.010543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:02.975538" elapsed="0.027954">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:02.960515" elapsed="0.043165">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:05.006179" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:05.005351" 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-09-12T23:14:05.006992" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:05.006430" elapsed="0.000679"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:05.006388" elapsed="0.000771"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:05.031655" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:05.031986" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:05.032218" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:05.021029" elapsed="0.011264"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:05.033102" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:05.032460" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:05.037758" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:05.033551" elapsed="0.004339"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:05.033294" elapsed="0.004665"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:05.032418" elapsed="0.005584"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:05.038271" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:05.039275" elapsed="0.004427"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:05.039006" elapsed="0.004778"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:05.048672" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:05.044328" elapsed="0.004622">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:05.043979" elapsed="0.005118">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:05.038716" elapsed="0.010501">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:05.020168" elapsed="0.029273">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:05.004500" elapsed="0.045136">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:07.052163" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:07.051344" 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-09-12T23:14:07.052951" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:07.052419" elapsed="0.000649"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:07.052376" elapsed="0.000742"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:07.076094" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:07.076400" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:07.076597" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:07.066498" elapsed="0.010153"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:07.077435" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:07.076808" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:07.082103" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:07.077878" elapsed="0.004330"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:07.077598" elapsed="0.004679"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:07.076770" elapsed="0.005576"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:07.082594" elapsed="0.000460"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:07.083683" elapsed="0.004811"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:07.083444" elapsed="0.005133"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:07.093568" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:07.089049" elapsed="0.004665">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:07.088741" elapsed="0.005153">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:07.083167" elapsed="0.010854">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:07.065641" elapsed="0.028581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:07.050502" elapsed="0.043935">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:09.096208" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:09.095655" elapsed="0.000593"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:09.096709" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:09.096381" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:09.096334" elapsed="0.000478"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:09.113157" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:09.113359" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:09.113483" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:09.105080" elapsed="0.008435"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:09.114050" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:09.113612" elapsed="0.000511"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:09.116909" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:09.114309" elapsed="0.002665"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:09.114153" elapsed="0.002863"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:09.113587" elapsed="0.003456"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:09.117203" elapsed="0.000229"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:09.117819" elapsed="0.002731"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:09.117667" elapsed="0.002932"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:09.123608" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:09.120871" elapsed="0.002838">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:09.120701" elapsed="0.003106">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:09.117502" elapsed="0.006403">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:09.104560" elapsed="0.019475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:09.095089" elapsed="0.029065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:11.126715" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:11.125896" elapsed="0.000881"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:11.127497" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:11.126974" elapsed="0.000638"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:11.126932" elapsed="0.000729"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:11.151584" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:11.152006" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:11.152225" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:11.141521" elapsed="0.010757"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:11.153256" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:11.152458" elapsed="0.000914"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:11.158386" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:11.153701" elapsed="0.004807"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:11.153448" elapsed="0.005128"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:11.152417" elapsed="0.006202"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:11.158918" elapsed="0.000342"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:11.159911" elapsed="0.004409"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:11.159645" elapsed="0.004778"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:11.169172" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:11.164826" elapsed="0.004492">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:11.164588" elapsed="0.004897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:11.159367" elapsed="0.010238">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:11.140652" elapsed="0.029146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:11.125047" elapsed="0.044971">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:13.172877" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:13.172024" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:13.173748" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:13.173219" elapsed="0.000675"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:13.173174" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:13.194653" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:13.194973" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:13.195175" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:13.187275" elapsed="0.007950"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:13.196005" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:13.195378" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:13.200616" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:13.196412" elapsed="0.004310"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:13.196165" elapsed="0.004624"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:13.195340" elapsed="0.005521"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:13.201112" elapsed="0.000351"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:13.202107" elapsed="0.004722"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:13.201827" elapsed="0.005112"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:13.211734" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:13.207346" elapsed="0.004564">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:13.207104" elapsed="0.004950">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:13.201572" elapsed="0.010605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:13.186418" elapsed="0.025953">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:13.171166" elapsed="0.041490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:15.215340" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:15.214482" 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-09-12T23:14:15.216151" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:15.215614" elapsed="0.000653"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:15.215570" elapsed="0.000747"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:15.238548" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:15.238822" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:15.239063" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:15.229623" elapsed="0.009491"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:15.239926" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:15.239266" elapsed="0.000786"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:15.244648" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:15.240382" elapsed="0.004368"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:15.240112" elapsed="0.004705"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:15.239228" elapsed="0.005664"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:15.245143" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:15.246135" elapsed="0.004288"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:15.245894" elapsed="0.004626"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:15.255339" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:15.250967" elapsed="0.004517">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:15.250684" elapsed="0.004962">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:15.245608" elapsed="0.010158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:15.228762" elapsed="0.027314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:15.213614" elapsed="0.042658">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:17.259012" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:17.258141" 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-09-12T23:14:17.259768" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:17.259248" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:17.259203" elapsed="0.000760"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:17.282455" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:17.282755" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:17.282999" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:17.273736" elapsed="0.009315"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:17.283800" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:17.283205" elapsed="0.000741"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:17.288443" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:17.284247" elapsed="0.004318"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:17.283996" elapsed="0.004639"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:17.283166" elapsed="0.005515"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:17.288960" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:17.289941" elapsed="0.004392"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:17.289676" elapsed="0.004734"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:17.299384" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:17.294864" elapsed="0.004668">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:17.294594" elapsed="0.005102">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:17.289398" elapsed="0.010537">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:17.272893" elapsed="0.027246">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:17.257248" elapsed="0.043076">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:19.302932" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:19.302079" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:19.303691" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:19.303162" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:19.303120" elapsed="0.000767"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:19.326539" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:19.326910" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:19.327120" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:19.317252" elapsed="0.009919"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:19.327952" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:19.327325" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:19.332925" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:19.328379" elapsed="0.004650"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:19.328112" elapsed="0.004984"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:19.327286" elapsed="0.005854"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:19.333400" elapsed="0.000357"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:19.334385" elapsed="0.004509"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:19.334148" elapsed="0.004825"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:19.343733" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:19.339377" elapsed="0.004533">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:19.339138" elapsed="0.005006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:19.333892" elapsed="0.010376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:19.316388" elapsed="0.028075">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:19.301216" elapsed="0.043453">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:21.347358" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:21.346461" elapsed="0.000961"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:21.348135" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:21.347585" elapsed="0.000663"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:21.347543" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:21.370704" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:21.371026" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:21.371219" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:21.361743" elapsed="0.009527"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:21.372060" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:21.371422" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:21.376618" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:21.372476" elapsed="0.004264"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:21.372221" elapsed="0.004587"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:21.371384" elapsed="0.005497"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:21.377129" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:21.378106" elapsed="0.004282"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:21.377869" elapsed="0.004597"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:21.387218" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:21.382910" elapsed="0.004601">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:21.382623" elapsed="0.005053">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:21.377564" elapsed="0.010236">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:21.360919" elapsed="0.027109">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:21.345571" elapsed="0.042648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:23.390875" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:23.390043" 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-09-12T23:14:23.391595" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:23.391104" elapsed="0.000628"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:23.391063" elapsed="0.000718"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:23.415315" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:23.415589" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:23.415821" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:23.406008" elapsed="0.009892"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:23.416599" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:23.416052" elapsed="0.000674"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:23.421189" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:23.417046" elapsed="0.004243"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:23.416773" elapsed="0.004583"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:23.416015" elapsed="0.005384"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:23.421649" elapsed="0.000474"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:23.422745" elapsed="0.004372"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:23.422482" elapsed="0.004715"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:23.431976" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:23.427591" elapsed="0.004534">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:23.427355" elapsed="0.004914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:23.422231" elapsed="0.010158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:23.405143" elapsed="0.027448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:23.389196" elapsed="0.043605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:25.435500" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:25.434652" 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-09-12T23:14:25.436274" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:25.435728" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:25.435686" elapsed="0.000751"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:25.458934" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:25.459207" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:25.459396" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:25.449701" elapsed="0.009746"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:25.460316" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:25.459599" elapsed="0.000833"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:25.465277" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:25.460740" elapsed="0.004640"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:25.460480" elapsed="0.004970"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:25.459561" elapsed="0.005932"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:25.465738" elapsed="0.000390"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:25.466720" elapsed="0.004328"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:25.466484" elapsed="0.004640"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:25.475878" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:25.471523" elapsed="0.004505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:25.471283" elapsed="0.004887">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:25.466234" elapsed="0.010052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:25.448903" elapsed="0.027576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:25.433769" elapsed="0.042893">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:27.479334" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:27.478477" elapsed="0.000921"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:27.480317" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:27.479566" elapsed="0.000862"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:27.479524" elapsed="0.000955"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:27.502777" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:27.503214" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:27.503411" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:27.493789" elapsed="0.009674"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:27.504244" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:27.503618" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:27.508829" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:27.504658" elapsed="0.004306"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:27.504402" elapsed="0.004628"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:27.503579" elapsed="0.005494"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:27.509318" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:27.510298" elapsed="0.004368"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:27.510063" elapsed="0.004680"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:27.519465" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:27.515189" elapsed="0.004422">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:27.514952" elapsed="0.004800">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:27.509756" elapsed="0.010167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:27.492980" elapsed="0.027146">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:27.477567" elapsed="0.042759">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:29.523048" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:29.522203" elapsed="0.000907"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:29.523980" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:29.523406" elapsed="0.000690"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:29.523362" elapsed="0.000786"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:29.547179" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:29.547452" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:29.547662" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:29.537921" 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-09-12T23:14:29.548485" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:29.547917" elapsed="0.000677"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:29.553103" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:29.548953" elapsed="0.004253"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:29.548643" elapsed="0.004631"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:29.547830" elapsed="0.005487"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:29.553560" elapsed="0.000388"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:29.554547" elapsed="0.004248"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:29.554310" elapsed="0.004614"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:29.563594" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:29.559322" elapsed="0.004422">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:29.559086" elapsed="0.004849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:29.554055" elapsed="0.010004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:29.537056" elapsed="0.027197">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:29.521309" elapsed="0.043200">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:31.567255" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:31.566407" 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-09-12T23:14:31.568055" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:31.567482" elapsed="0.000688"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:31.567441" elapsed="0.000778"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:31.590664" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:31.591013" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:31.591270" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:31.581541" elapsed="0.009786"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:31.592110" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:31.591481" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:31.597077" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:31.592520" elapsed="0.004664"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:31.592267" elapsed="0.004995"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:31.591443" elapsed="0.005882"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:31.597654" elapsed="0.000487"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:31.598968" elapsed="0.006016"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:31.598600" elapsed="0.006489"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:31.610201" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:31.605614" elapsed="0.004735">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:31.605299" elapsed="0.005193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:31.598280" elapsed="0.012329">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:31.580689" elapsed="0.030251">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:31.565482" elapsed="0.045660">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:33.613751" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:33.612942" elapsed="0.000870"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:33.614532" elapsed="0.000041"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:33.614035" elapsed="0.000609"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:33.613990" elapsed="0.000703"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:33.637516" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:33.637798" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:33.638061" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:33.628564" elapsed="0.009549"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:33.638892" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:33.638271" elapsed="0.000755"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:33.643502" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:33.639332" elapsed="0.004269"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:33.639075" elapsed="0.004592"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:33.638231" elapsed="0.005481"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:33.644015" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:33.645004" elapsed="0.004294"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:33.644710" elapsed="0.004666"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:33.654142" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:33.649769" elapsed="0.004521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:33.649533" elapsed="0.004896">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:33.644458" elapsed="0.010195">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:33.627696" elapsed="0.027357">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:33.612117" elapsed="0.043159">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:35.657925" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:35.657119" elapsed="0.000868"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:35.658691" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:35.658171" elapsed="0.000631"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:35.658129" elapsed="0.000751"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:35.683757" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:35.684099" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:35.684311" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:35.675508" elapsed="0.008854"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:35.685138" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:35.684519" elapsed="0.000731"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:35.689634" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:35.685539" elapsed="0.004195"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:35.685297" elapsed="0.004503"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:35.684481" elapsed="0.005401"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:35.690150" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:35.691121" elapsed="0.004241"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:35.690866" elapsed="0.004574"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:35.700226" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:35.695831" elapsed="0.004536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:35.695600" elapsed="0.004996">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:35.690585" elapsed="0.010131">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:35.674595" elapsed="0.026342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:35.656271" elapsed="0.044876">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:37.703758" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:37.702932" elapsed="0.000889"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:37.704552" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:37.704027" elapsed="0.000640"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:37.703983" elapsed="0.000735"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:37.728547" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:37.728827" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:37.729116" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:37.718196" elapsed="0.010977"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:37.729957" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:37.729332" elapsed="0.000797"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:37.735109" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:37.730445" elapsed="0.004785"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:37.730182" elapsed="0.005115"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:37.729291" elapsed="0.006056"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:37.735641" elapsed="0.000435"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:37.736789" elapsed="0.036639"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:37.736498" elapsed="0.036996"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:37.776605" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:37.773800" elapsed="0.002980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:37.773617" elapsed="0.003278">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:37.736194" elapsed="0.040779">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:37.717334" elapsed="0.059786">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:37.702100" elapsed="0.075138">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:39.779796" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:39.778988" 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-09-12T23:14:39.780579" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:39.780055" elapsed="0.000639"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:39.780013" elapsed="0.000730"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:39.806458" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:39.806745" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:39.806986" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:39.795164" elapsed="0.011875"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:39.807881" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:39.807237" elapsed="0.000761"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:39.812522" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:39.808324" elapsed="0.004299"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:39.808046" elapsed="0.004647"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:39.807193" elapsed="0.005543"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:39.813011" elapsed="0.000470"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:39.814155" elapsed="0.004354"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:39.813882" elapsed="0.004706"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:39.823866" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:39.819016" elapsed="0.005011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:39.818749" elapsed="0.005476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:39.813594" elapsed="0.010761">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:39.793926" elapsed="0.030630">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:39.778157" elapsed="0.046585">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:41.827358" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:41.826517" 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-09-12T23:14:41.828112" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:41.827584" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:41.827544" elapsed="0.000758"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:41.851116" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:41.851419" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:41.851609" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:41.841631" elapsed="0.010030"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:41.852528" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:41.851816" elapsed="0.000827"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:41.857130" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:41.852972" elapsed="0.004286"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:41.852691" elapsed="0.004636"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:41.851778" elapsed="0.005593"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:41.857617" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:41.858612" elapsed="0.004327"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:41.858371" elapsed="0.004647"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:41.867782" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:41.863445" elapsed="0.004519">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:41.863199" elapsed="0.004911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:41.858092" elapsed="0.010164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:41.840753" elapsed="0.027702">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:41.825655" elapsed="0.042988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:43.871251" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:43.870406" elapsed="0.000907"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:43.872013" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:43.871478" elapsed="0.000674"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:43.871437" elapsed="0.000766"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:43.899979" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:43.900382" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:43.900603" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:43.886095" elapsed="0.014560"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:43.901445" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:43.900811" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:43.906076" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:43.901882" elapsed="0.004366"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:43.901606" elapsed="0.004749"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:43.900771" elapsed="0.005655"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:43.906765" elapsed="0.000538"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:43.908226" elapsed="0.006253"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:43.907813" elapsed="0.006770"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:43.919455" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:43.915064" elapsed="0.004539">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:43.914759" elapsed="0.005019">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:43.907453" elapsed="0.012487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:43.885246" elapsed="0.034929">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:43.869550" elapsed="0.050828">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:45.923190" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:45.922257" 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="NOT RUN" start="2026-09-12T23:14:45.924059" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:45.923513" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:45.923470" elapsed="0.000753"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:45.946702" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:45.947081" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:45.947286" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:45.937501" elapsed="0.009835"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:45.948133" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:45.947484" elapsed="0.000760"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:45.953164" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:45.948533" elapsed="0.004733"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:45.948291" elapsed="0.005043"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:45.947447" elapsed="0.005931"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:45.953621" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:45.954607" elapsed="0.004396"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:45.954372" elapsed="0.004732"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:45.963864" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:45.959507" elapsed="0.004505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:45.959267" elapsed="0.004908">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:45.954105" elapsed="0.010193">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:45.936662" elapsed="0.027831">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:45.921368" elapsed="0.043383">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:47.967308" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:47.966467" 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-09-12T23:14:47.968088" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:47.967536" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:47.967492" elapsed="0.000761"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:47.989407" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:47.989681" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:47.989903" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:47.981494" elapsed="0.008462"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:47.990696" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:47.990135" elapsed="0.000673"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:47.995432" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:47.991310" elapsed="0.004223"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:47.991041" elapsed="0.004559"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:47.990096" elapsed="0.005548"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:47.995955" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:47.996945" elapsed="0.004363"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:47.996678" elapsed="0.004709"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:48.006223" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:48.001785" elapsed="0.004582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:48.001549" elapsed="0.004959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:47.996423" elapsed="0.010203">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:47.980648" elapsed="0.026302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:47.965613" elapsed="0.041554">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:50.009714" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:50.008908" elapsed="0.000868"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:50.010483" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:50.009988" elapsed="0.000607"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:50.009944" elapsed="0.000698"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:50.033895" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:50.034203" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:50.034416" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:50.024481" elapsed="0.009988"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:50.035239" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:50.034621" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:50.039763" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:50.035644" elapsed="0.004251"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:50.035401" elapsed="0.004582"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:50.034582" elapsed="0.005447"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:50.040271" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:50.041248" elapsed="0.004267"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:50.041010" elapsed="0.004583"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:50.050358" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:50.046041" elapsed="0.004463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:50.045754" elapsed="0.004892">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:50.040704" elapsed="0.010227">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:50.023624" elapsed="0.027522">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:50.008091" elapsed="0.043245">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:52.053812" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:52.053033" elapsed="0.000890"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:52.054583" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:52.054088" elapsed="0.000607"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:52.054046" elapsed="0.000697"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:52.077548" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:52.077823" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:52.078164" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:52.067913" elapsed="0.010324"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:52.079062" elapsed="0.000062"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:52.078401" elapsed="0.000811"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:52.084096" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:52.079537" elapsed="0.004665"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:52.079271" elapsed="0.004999"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:52.078359" elapsed="0.005955"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:52.084558" elapsed="0.000383"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:52.085542" elapsed="0.004460"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:52.085307" elapsed="0.004777"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:52.094918" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:52.090487" elapsed="0.004581">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:52.090248" elapsed="0.005054">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:52.085052" elapsed="0.010376">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:52.067070" elapsed="0.028555">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:52.052199" elapsed="0.043614">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:54.098420" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:54.097589" 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-09-12T23:14:54.099201" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:54.098647" elapsed="0.000668"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:54.098606" elapsed="0.000759"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:54.122968" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:54.123256" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:54.123455" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:54.112695" elapsed="0.010811"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:54.124328" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:54.123666" elapsed="0.000774"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:54.129040" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:54.124733" elapsed="0.004409"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:54.124489" elapsed="0.004719"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:54.123625" elapsed="0.005627"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:54.129497" elapsed="0.000382"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:54.130492" elapsed="0.004267"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:54.130249" elapsed="0.004637"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:54.139604" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:54.135289" elapsed="0.004602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:54.135052" elapsed="0.004986">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:54.129991" elapsed="0.010170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:54.111861" elapsed="0.028495">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:54.096720" elapsed="0.043827">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:56.143085" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:56.142248" 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-09-12T23:14:56.143830" elapsed="0.000075"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:56.143311" elapsed="0.000665"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:56.143270" elapsed="0.000757"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:56.167077" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:56.167354" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:56.167566" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:56.157716" elapsed="0.009902"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:56.168394" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:56.167797" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:56.173145" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:56.168822" elapsed="0.004427"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:56.168553" elapsed="0.004766"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:56.167757" elapsed="0.005606"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:56.173609" elapsed="0.000488"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:56.174726" elapsed="0.004449"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:56.174464" elapsed="0.004791"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:56.184125" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:56.179654" elapsed="0.004617">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:56.179416" elapsed="0.004998">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:56.174209" elapsed="0.010327">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:56.156912" elapsed="0.027820">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:56.141410" elapsed="0.043582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:14:58.187501" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:14:58.186664" elapsed="0.000899"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:14:58.188288" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:58.187755" elapsed="0.000648"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:58.187713" elapsed="0.000738"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:14:58.210043" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:14:58.210320" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:14:58.210510" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:14:58.201745" elapsed="0.008817"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:14:58.211444" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:14:58.210743" elapsed="0.000817"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:14:58.216434" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:14:58.211910" elapsed="0.004628"/>
</kw>
<status status="PASS" start="2026-09-12T23:14:58.211608" elapsed="0.005001"/>
</branch>
<status status="PASS" start="2026-09-12T23:14:58.210702" elapsed="0.005950"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:14:58.216951" elapsed="0.000446"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:14:58.218073" elapsed="0.004224"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:14:58.217802" elapsed="0.004575"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:14:58.227192" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:14:58.222794" elapsed="0.004544">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:14:58.222536" elapsed="0.004943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:14:58.217514" elapsed="0.010082">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:14:58.200923" elapsed="0.026889">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:14:58.185863" elapsed="0.042167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:00.230654" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:00.229811" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:00.231464" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:00.230947" elapsed="0.000634"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:00.230886" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:00.254984" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:00.255357" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:00.255553" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:00.245316" elapsed="0.010288"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:00.256398" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:00.255792" elapsed="0.000719"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:00.261018" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:00.256829" elapsed="0.004291"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:00.256559" elapsed="0.004628"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:00.255751" elapsed="0.005480"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:00.261476" elapsed="0.000384"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:00.262471" elapsed="0.004316"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:00.262232" elapsed="0.004663"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:00.271599" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:00.267296" elapsed="0.004475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:00.267061" elapsed="0.004886">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:00.261976" elapsed="0.010091">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:00.244442" elapsed="0.027825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:00.229001" elapsed="0.043457">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:02.275057" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:02.274217" elapsed="0.000902"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:02.275948" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:02.275388" elapsed="0.000678"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:02.275344" elapsed="0.000772"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:02.299114" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:02.299392" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:02.299630" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:02.290279" elapsed="0.009405"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:02.300443" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:02.299867" elapsed="0.000687"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:02.305087" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:02.300945" elapsed="0.004259"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:02.300665" elapsed="0.004614"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:02.299799" elapsed="0.005524"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:02.305570" elapsed="0.000417"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:02.306647" elapsed="0.004339"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:02.306387" elapsed="0.004679"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:02.315792" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:02.311465" elapsed="0.004504">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:02.311227" elapsed="0.004885">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:02.306111" elapsed="0.010170">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:02.289372" elapsed="0.027160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:02.273358" elapsed="0.043505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:04.319395" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:04.318567" elapsed="0.000890"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:04.320189" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:04.319646" elapsed="0.000657"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:04.319604" elapsed="0.000749"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:04.343077" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:04.343363" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:04.343581" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:04.333703" elapsed="0.009931"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:04.344393" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:04.343790" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:04.349273" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:04.344825" elapsed="0.004550"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:04.344574" elapsed="0.004869"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:04.343751" elapsed="0.005736"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:04.349756" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:04.350738" elapsed="0.004362"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:04.350477" elapsed="0.004701"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:04.359958" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:04.355599" elapsed="0.004504">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:04.355339" elapsed="0.004907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:04.350228" elapsed="0.010137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:04.332858" elapsed="0.027815">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:04.317716" elapsed="0.043177">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:06.363441" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:06.362618" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:06.364221" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:06.363690" elapsed="0.000645"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:06.363647" elapsed="0.000737"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:06.386734" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:06.387064" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:06.387270" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:06.377589" elapsed="0.009733"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:06.388136" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:06.387505" elapsed="0.000743"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:06.392734" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:06.388570" elapsed="0.004298"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:06.388297" elapsed="0.004641"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:06.387443" elapsed="0.005543"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:06.393228" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:06.394228" elapsed="0.004305"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:06.393977" elapsed="0.004633"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:06.403326" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:06.399034" elapsed="0.004463">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:06.398767" elapsed="0.004873">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:06.393695" elapsed="0.010199">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:06.376733" elapsed="0.027371">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:06.361744" elapsed="0.042549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:08.407013" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:08.406158" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:08.407761" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:08.407242" elapsed="0.000661"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:08.407199" elapsed="0.000755"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:08.430553" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:08.430829" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:08.431111" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:08.421764" elapsed="0.009400"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:08.431956" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:08.431320" elapsed="0.000749"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:08.436586" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:08.432401" elapsed="0.004289"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:08.432117" elapsed="0.004639"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:08.431282" elapsed="0.005518"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:08.437076" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:08.438061" elapsed="0.004245"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:08.437792" elapsed="0.004594"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:08.447125" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:08.442805" elapsed="0.004466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:08.442570" elapsed="0.004961">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:08.437537" elapsed="0.010121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:08.420926" elapsed="0.026958">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:08.405246" elapsed="0.042829">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:10.450617" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:10.449779" 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-09-12T23:15:10.451418" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:10.450875" elapsed="0.000660"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:10.450803" elapsed="0.000782"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:10.473405" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:10.473693" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:10.473912" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:10.464789" elapsed="0.009174"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:10.474705" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:10.474115" elapsed="0.000699"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:10.479806" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:10.475154" elapsed="0.004786"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:10.474900" elapsed="0.005107"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:10.474077" elapsed="0.005973"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:10.480292" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:10.481280" elapsed="0.004284"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:10.481044" elapsed="0.004598"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:10.490444" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:10.486070" elapsed="0.004623">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:10.485801" elapsed="0.005070">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:10.480756" elapsed="0.010241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:10.463971" elapsed="0.027225">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:10.448962" elapsed="0.042442">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:12.494007" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:12.493157" elapsed="0.000914"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:12.494758" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:12.494236" elapsed="0.000669"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:12.494194" elapsed="0.000763"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:12.515801" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:12.516155" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:12.516375" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:12.508204" elapsed="0.008225"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:12.517181" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:12.516581" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:12.521736" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:12.517607" elapsed="0.004260"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:12.517359" elapsed="0.004578"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:12.516543" elapsed="0.005438"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:12.522225" elapsed="0.000456"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:12.523325" elapsed="0.004318"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:12.523084" elapsed="0.004636"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:12.532613" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:12.528150" elapsed="0.004611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:12.527912" elapsed="0.005024">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:12.522794" elapsed="0.010263">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:12.507366" elapsed="0.025888">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:12.492297" elapsed="0.041168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:14.536042" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:14.535200" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:14.536795" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:14.536275" elapsed="0.000667"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:14.536233" elapsed="0.000756"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:14.562000" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:14.562285" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:14.562523" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:14.552946" elapsed="0.009628"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:14.563445" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:14.562729" elapsed="0.000831"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:14.568008" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:14.563881" elapsed="0.004229"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:14.563607" elapsed="0.004570"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:14.562690" elapsed="0.005531"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:14.568484" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:14.569468" elapsed="0.004277"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:14.569206" elapsed="0.004618"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:14.578675" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:14.574255" elapsed="0.004565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:14.574017" elapsed="0.004979">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:14.568954" elapsed="0.010163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:14.552075" elapsed="0.027264">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:14.534378" elapsed="0.045158">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:16.582683" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"CONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:16.581793" elapsed="0.000952"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:16.583510" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:16.582956" elapsed="0.000672"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:16.582901" elapsed="0.000777"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:16.606230" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:16.606630" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:16.606823" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:16.597160" elapsed="0.009746"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:16.607653" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:16.607063" elapsed="0.000702"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:16.612283" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:16.608094" elapsed="0.004294"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:16.607812" elapsed="0.004644"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:16.607023" elapsed="0.005477"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:16.612742" elapsed="0.000368"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:16.613731" elapsed="0.004825"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:15:16.613496" elapsed="0.005140"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:16.623490" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:16.619067" elapsed="0.004571">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<var name="${i}">"device-status":"CONNECTED"</var>
<status status="FAIL" start="2026-09-12T23:15:16.618797" elapsed="0.004983">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:16.613220" elapsed="0.010718">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:16.596327" elapsed="0.027810">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<arg>CONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:16.580727" elapsed="0.043619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<msg time="2026-09-12T23:15:16.624522" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>CONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-12T23:13:46.586437" elapsed="90.038357">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:15:16.625170" elapsed="0.000044"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:16.626812" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:15:16.956782" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:15:16.957146" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:15:16.957233" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:15:16.957341" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:16.626452" elapsed="0.330935"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:16.958437" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:16.957787" elapsed="0.000734"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:16.959183" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:15:17.327957" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:15:17.328305" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:15:17.328445" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:15:17.328529" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:16.958803" elapsed="0.369771"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.329400" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:15:17.401301" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:15:17.401535" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:15:17.401622" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:15:17.401700" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:17.328989" elapsed="0.072754"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.402303" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:15:17.453978" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:17.402081" elapsed="0.052043"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:17.467470" level="INFO">DELETE Request : url=http://10.30.171.31: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=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:17.467561" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:17.467739" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:17.454473" elapsed="0.013316"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:17.476102" level="INFO">DELETE Request : url=http://10.30.171.31: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=node01qqkpz51l2ojhlxhvltfoepgw2.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:17.476386" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:15:17.476589" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:17.468134" elapsed="0.008508"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:15:16.625803" elapsed="0.850975"/>
</kw>
<doc>CallHome SSH device registered with global credentials should result to successful mount.</doc>
<status status="FAIL" start="2026-09-12T23:13:45.922544" elapsed="91.554357">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQC03nig9btlwUc+TzVVfccEoicLUvFzmzJFl8xE1cSud5fpks87UcUHM4kxAJCiA07aJgodoueKs00OUE8X0198idO0dTsvNg3NzH+fb5ScSc3v5KfjcFumuMBhUJguHB28wl2W/tHfLNwyARHBrn62yicJVWxnPzoN2I9sjwl0Dh9ZAN6ZlaPsJI9qhHPlm+ML/k8UBGE3nVQ7Nnj6Vm0YKN2oho4IcjNZjk8CbfztBgqdDG9DpjPRhOw7mLuuNQ1LEzw/a25D1InrQDu4YaIiFD1wZ2ow5G0McLvi5b6pE5J2LWfRPTH0JaD/CZSms6TDQKVK58wj26KsS1sM2pA3"}}]}}}' does not contain '"device-status":"CONNECTED"'</status>
</test>
<test id="s1-s1-t4" name="CallHome over SSH with incorrect global credentials" line="71">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:17.481550" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e6998410&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:15:17.480983" elapsed="0.000882"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.482366" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:15:17.505153" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:17.482149" elapsed="0.023144"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.505766" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:15:17.830979" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:17.505574" elapsed="0.325595"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.831824" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:15:17.881273" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:15:17.881496" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLB...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:17.831570" elapsed="0.049979"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:15:17.889367" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLB...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:15:17.881927" elapsed="0.007534"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:15:17.479804" elapsed="0.409781"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.931302" 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-09-12T23:15:17.890521" elapsed="0.040900"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:15:17.941744" 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-09-12T23:15:17.931699" elapsed="0.010195"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-12T23:15:17.889965" elapsed="0.052052"/>
</kw>
<kw name="Register global credentials for SSH call-home devices" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:15:17.943329" 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-09-12T23:15:17.943597" level="INFO">${template} = {
  "credentials": {
    "username": "{username}",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${template}</var>
<arg>${CREATE_GLOBAL_CREDENTIALS_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:15:17.943008" elapsed="0.000641"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:15:17.944456" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "{password}" ]
  }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:15:17.943963" elapsed="0.000545"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:15:17.945279" level="INFO">${body} = {
  "credentials": {
    "username": "root",
    "passwords": [ "incorrect" ]
  }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:15:17.944782" elapsed="0.000549"/>
</kw>
<kw name="PUT On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:17.963243" level="INFO">PUT Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Content-Length': '84', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
  "credentials": {
    "username": "root",
    "passwords": [ "incorrect" ]
  }
}
 
 </msg>
<msg time="2026-09-12T23:15:17.963346" level="INFO">PUT Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/global/credentials 
 status=204, reason=No Content 
 headers={'Set-Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:15:17 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:17.963541" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${global_config_url}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a PUT request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:17.945589" elapsed="0.018003"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:17.964009" elapsed="0.004246"/>
</kw>
<arg>root</arg>
<arg>incorrect</arg>
<doc>Set global credentials for SSH call-home devices</doc>
<status status="PASS" start="2026-09-12T23:15:17.942381" elapsed="0.025999"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:15:17.983218" 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-09-12T23:15:17.983497" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:15:17.982927" elapsed="0.000620"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:15:17.984525" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:15:17.983866" elapsed="0.000743"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:17.982380" elapsed="0.002336"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:17.975605" elapsed="0.009157"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:15:17.985130" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:17.984813" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:17.975563" elapsed="0.009724"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:15:17.986037" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:15:17.985541" elapsed="0.000548"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:15:17.986830" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:15:17.986390" elapsed="0.000522"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:15:17.987654" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:15:17.987189" elapsed="0.000515"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:15:17.988475" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:15:17.988011" elapsed="0.000516"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:18.002433" level="INFO">POST Request : url=http://10.30.171.31: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=node0u12lio7fik7r16jee5kx5pley3.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:15:18.002538" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:18.002708" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:17.988784" elapsed="0.013975"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:15:18.003101" elapsed="0.004387"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:15:17.968894" elapsed="0.038718"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:15:18.008281" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-12T23:15:18.335974" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:15:18.336342" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:15:18.336430" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:15:18.336509" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:15:18.007921" elapsed="0.328633"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:18.339889" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:18.339114" elapsed="0.000830"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:18.340615" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:18.340099" elapsed="0.001027"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:18.340057" elapsed="0.001119"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:18.362791" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:18.363125" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:18.363342" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:18.354399" elapsed="0.008993"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:18.364134" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:18.363544" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:18.369087" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:18.364562" elapsed="0.004624"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:18.364319" elapsed="0.004956"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:18.363506" elapsed="0.005814"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:18.369559" elapsed="0.000361"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:18.374929" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:18.370558" elapsed="0.004518">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:18.370316" elapsed="0.004922">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:18.370032" elapsed="0.005330">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:18.353553" elapsed="0.022004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:18.338296" elapsed="0.037516">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:20.378373" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:20.377525" 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-09-12T23:15:20.379133" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:20.378604" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:20.378563" elapsed="0.001127"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:20.401592" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:20.401908" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:20.402101" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:20.392945" elapsed="0.009206"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:20.402923" elapsed="0.000055"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:20.402326" elapsed="0.000714"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:20.407480" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:20.403357" elapsed="0.004223"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:20.403088" elapsed="0.004559"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:20.402288" elapsed="0.005403"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:20.407978" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:20.413371" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:20.408976" elapsed="0.004539">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:20.408708" elapsed="0.004949">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:20.408454" elapsed="0.005325">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:20.392061" elapsed="0.022038">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:20.376669" elapsed="0.037648">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:22.416823" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:22.416015" elapsed="0.000901"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:22.417609" elapsed="0.000443"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:22.417083" elapsed="0.001046"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:22.417040" elapsed="0.001161"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:22.440813" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:22.441175" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:22.441394" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:22.431997" elapsed="0.009450"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:22.442226" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:22.441602" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:22.446897" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:22.442631" elapsed="0.004369"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:22.442385" elapsed="0.004681"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:22.441563" elapsed="0.005548"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:22.447376" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:22.452683" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:22.448360" elapsed="0.004469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:22.448101" elapsed="0.004901">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:22.447811" elapsed="0.005422">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:22.431134" elapsed="0.022304">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:22.415191" elapsed="0.038439">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:24.456327" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:24.455469" 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-09-12T23:15:24.457086" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:24.456555" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:24.456513" elapsed="0.001128"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:24.479193" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:24.479473" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:24.479672" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:24.470893" elapsed="0.008853"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:24.480601" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:24.479962" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:24.485262" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:24.481071" elapsed="0.004294"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:24.480761" elapsed="0.004670"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:24.479911" elapsed="0.005565"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:24.485718" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:24.491507" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:24.486714" elapsed="0.004941">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:24.486473" elapsed="0.005456">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:24.486215" elapsed="0.005842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:24.469998" elapsed="0.022284">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:24.454559" elapsed="0.037911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:26.495023" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:26.494191" 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-09-12T23:15:26.495771" elapsed="0.000471"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:26.495273" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:26.495230" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:26.520313" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:26.520596" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:26.520795" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:26.510304" elapsed="0.010574"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:26.521694" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:26.521046" elapsed="0.000761"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:26.526365" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:26.522161" elapsed="0.004306"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:26.521886" elapsed="0.004647"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:26.521004" elapsed="0.005573"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:26.526826" elapsed="0.000414"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:26.532339" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:26.527900" elapsed="0.004686">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:26.527618" elapsed="0.005115">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:26.527352" elapsed="0.005535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:26.509193" elapsed="0.023922">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:26.493343" elapsed="0.039968">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:28.536087" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:28.535217" elapsed="0.000938"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:28.536822" elapsed="0.000465"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:28.536322" elapsed="0.001040"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:28.536279" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:28.560276" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:28.560612" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:28.560902" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:28.551167" elapsed="0.009800"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:28.561955" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:28.561198" elapsed="0.000919"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:28.567715" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:28.562613" elapsed="0.005265"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:28.562174" elapsed="0.005785"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:28.561140" elapsed="0.006870"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:28.568432" elapsed="0.000388"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:28.575016" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:28.569624" elapsed="0.005592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:28.569335" elapsed="0.006050">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:28.568988" elapsed="0.006536">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:28.550308" elapsed="0.025445">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:28.534207" elapsed="0.041809">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:30.578620" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:30.577715" 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="PASS" start="2026-09-12T23:15:30.579401" elapsed="0.000465"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:30.578878" elapsed="0.001070"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:30.578804" elapsed="0.001217"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:30.602270" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:30.602547" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:30.602739" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:30.593502" elapsed="0.009288"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:30.603585" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:30.602985" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:30.608468" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:30.604151" elapsed="0.004419"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:30.603829" elapsed="0.004808"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:30.602945" elapsed="0.005736"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:30.608959" elapsed="0.000382"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:30.614828" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:30.610095" elapsed="0.004942">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:30.609723" elapsed="0.005461">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:30.609452" elapsed="0.005854">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:30.592643" elapsed="0.022857">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:30.576904" elapsed="0.038864">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:32.618515" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:32.617659" 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="PASS" start="2026-09-12T23:15:32.619312" elapsed="0.000409"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:32.618746" elapsed="0.001053"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:32.618703" elapsed="0.001179"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:32.641639" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:32.642000" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:32.642282" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:32.633249" elapsed="0.009085"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:32.643123" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:32.642493" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:32.647645" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:32.643535" elapsed="0.004212"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:32.643287" elapsed="0.004528"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:32.642454" elapsed="0.005436"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:32.648157" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:32.653480" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:32.649145" elapsed="0.004480">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:32.648884" elapsed="0.004884">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:32.648600" elapsed="0.005321">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:32.632376" elapsed="0.021763">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:32.616708" elapsed="0.037618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:34.656962" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:34.656114" 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-09-12T23:15:34.657704" elapsed="0.000465"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:34.657198" elapsed="0.001049"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:34.657156" elapsed="0.001140"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:34.680586" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:34.681030" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:34.681259" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:34.672133" elapsed="0.009179"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:34.682136" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:34.681484" elapsed="0.000768"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:34.686746" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:34.682546" elapsed="0.004335"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:34.682299" elapsed="0.004672"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:34.681443" elapsed="0.005574"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:34.687263" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:34.692630" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:34.688265" elapsed="0.004513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:34.688017" elapsed="0.004959">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:34.687712" elapsed="0.005389">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:34.671229" elapsed="0.022065">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:34.655268" elapsed="0.038212">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:36.696115" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:36.695265" 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-09-12T23:15:36.696865" elapsed="0.000520"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:36.696342" elapsed="0.001122"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:36.696300" elapsed="0.001213"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:36.719824" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:36.720178" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:36.720370" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:36.711443" elapsed="0.008979"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:36.721199" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:36.720578" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:36.725748" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:36.721606" elapsed="0.004273"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:36.721360" elapsed="0.004608"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:36.720539" elapsed="0.005473"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:36.726257" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:36.732032" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:36.727247" elapsed="0.004931">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:36.727006" elapsed="0.005316">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:36.726700" elapsed="0.005743">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:36.710545" elapsed="0.022093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:36.694383" elapsed="0.038445">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:38.735709" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:38.734767" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:38.736566" elapsed="0.000504"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:38.736003" elapsed="0.001152"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:38.735956" elapsed="0.001252"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:38.761136" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:38.761458" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:38.761662" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:38.751194" elapsed="0.010520"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:38.762554" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:38.761931" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:38.767357" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:38.763042" elapsed="0.004418"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:38.762725" elapsed="0.004823"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:38.761866" elapsed="0.005735"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:38.767909" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:38.773512" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:38.768986" elapsed="0.004679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:38.768679" elapsed="0.005189">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:38.768385" elapsed="0.005645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:38.750237" elapsed="0.023999">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:38.733818" elapsed="0.040713">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:40.777490" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:40.776519" elapsed="0.001053"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:40.778318" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:40.777752" elapsed="0.001054"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:40.777707" elapsed="0.001202"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:40.801549" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:40.801822" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:40.802092" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:40.792745" elapsed="0.009400"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:40.802924" elapsed="0.000059"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:40.802302" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:40.807573" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:40.803341" elapsed="0.004333"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:40.803093" elapsed="0.004650"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:40.802264" elapsed="0.005521"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:40.808088" elapsed="0.000335"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:40.813540" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:40.809084" elapsed="0.004605">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:40.808786" elapsed="0.005097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:40.808532" elapsed="0.005477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:40.791925" elapsed="0.022369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:40.775521" elapsed="0.038969">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:42.817072" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:42.816225" 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-09-12T23:15:42.817808" elapsed="0.000455"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:42.817308" elapsed="0.001032"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:42.817264" elapsed="0.001127"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:42.841103" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:42.841393" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:42.841583" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:42.831536" elapsed="0.010098"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:42.842404" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:42.841788" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:42.847297" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:42.842806" elapsed="0.004592"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:42.842561" elapsed="0.004906"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:42.841751" elapsed="0.005761"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:42.847755" elapsed="0.000383"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:42.853142" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:42.848749" elapsed="0.004542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:42.848508" elapsed="0.004928">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:42.848251" elapsed="0.005416">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:42.830681" elapsed="0.023244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:42.815367" elapsed="0.038753">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:44.856892" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:44.856046" 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-09-12T23:15:44.857627" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:44.857127" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:44.857084" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:44.880972" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:44.881256" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:44.881455" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:44.871913" elapsed="0.009593"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:44.882341" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:44.881679" elapsed="0.000776"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:44.887069" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:44.882750" elapsed="0.004428"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:44.882502" elapsed="0.004745"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:44.881636" elapsed="0.005654"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:44.887539" elapsed="0.000390"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:44.892887" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:44.888543" elapsed="0.004494">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:44.888296" elapsed="0.004984">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:44.888042" elapsed="0.005365">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:44.870907" elapsed="0.022696">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:44.855123" elapsed="0.038689">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:46.896541" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:46.895695" 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-09-12T23:15:46.897330" elapsed="0.000406"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:46.896796" elapsed="0.001066"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:46.896729" elapsed="0.001187"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:46.923914" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:46.924210" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:46.924433" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:46.914289" elapsed="0.010196"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:46.925303" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:46.924649" elapsed="0.000767"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:46.929915" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:46.925711" elapsed="0.004308"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:46.925463" elapsed="0.004623"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:46.924608" elapsed="0.005522"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:46.930378" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:46.936481" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:46.932108" elapsed="0.004615">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:46.931864" elapsed="0.005053">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:46.931527" elapsed="0.005514">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:46.913400" elapsed="0.023836">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:46.894804" elapsed="0.042619">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:48.940053" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:48.939205" 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-09-12T23:15:48.940808" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:48.940285" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:48.940242" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:48.963463" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:48.963740" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:48.964008" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:48.954720" elapsed="0.009341"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:48.964805" elapsed="0.000084"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:48.964219" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:48.969387" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:48.965256" elapsed="0.004232"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:48.965006" elapsed="0.004552"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:48.964180" elapsed="0.005421"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:48.970000" elapsed="0.000337"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:48.975698" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:48.970991" elapsed="0.004911">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:48.970705" elapsed="0.005352">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:48.970449" elapsed="0.005732">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:48.953915" elapsed="0.022461">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:48.938347" elapsed="0.038302">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:50.979416" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:50.978525" elapsed="0.000955"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:50.980229" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:50.979656" elapsed="0.001088"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:50.979611" elapsed="0.001186"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:51.003439" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:51.003712" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:51.003979" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:50.994087" 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-09-12T23:15:51.004773" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:51.004188" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:51.009423" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:51.005309" elapsed="0.004216"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:51.005050" elapsed="0.004543"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:51.004150" elapsed="0.005486"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:51.009935" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:51.015303" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:51.010920" elapsed="0.004531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:51.010633" elapsed="0.004964">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:51.010377" elapsed="0.005341">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:50.993233" elapsed="0.022733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:50.977583" elapsed="0.038577">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:53.018903" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:53.018004" elapsed="0.000970"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:53.019690" elapsed="0.000485"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:53.019145" elapsed="0.001107"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:53.019101" elapsed="0.001205"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:53.043882" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:53.044171" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:53.044480" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:53.034741" elapsed="0.009801"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:53.045368" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:53.044755" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:53.050172" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:53.045865" elapsed="0.004416"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:53.045535" elapsed="0.004816"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:53.044687" elapsed="0.005710"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:53.050649" elapsed="0.000422"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:53.056305" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:53.051695" elapsed="0.004764">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:53.051449" elapsed="0.005157">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:53.051188" elapsed="0.005569">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:53.033859" elapsed="0.023135">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:53.017094" elapsed="0.040126">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:55.059942" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:55.059071" elapsed="0.000937"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:55.060710" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:55.060180" elapsed="0.001053"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:55.060137" elapsed="0.001147"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:55.084229" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:55.084605" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:55.084825" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:55.074569" elapsed="0.010341"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:55.085636" elapsed="0.000073"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:55.085069" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:55.090301" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:55.086108" elapsed="0.004296"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:55.085823" elapsed="0.004650"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:55.085031" elapsed="0.005487"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:55.090787" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:55.096589" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:55.091787" elapsed="0.004974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:55.091520" elapsed="0.005418">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:55.091264" elapsed="0.005800">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:55.073736" elapsed="0.023527">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:55.058148" elapsed="0.039308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:57.100234" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:57.099332" elapsed="0.000965"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:57.101067" elapsed="0.000528"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:57.100466" elapsed="0.001237"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:57.100424" elapsed="0.001335"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:57.127133" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:57.127418" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:57.127616" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:57.115753" elapsed="0.011942"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:57.128538" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:57.127927" elapsed="0.000729"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:57.133406" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:57.129051" elapsed="0.004460"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:57.128734" elapsed="0.004851"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:57.127821" elapsed="0.005812"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:57.133946" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:57.139753" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:57.135031" elapsed="0.004912">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:57.134721" elapsed="0.005377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:57.134430" elapsed="0.005796">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:57.114891" elapsed="0.025543">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:57.098381" elapsed="0.042314">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:15:59.143680" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:15:59.142773" elapsed="0.000976"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:15:59.144506" elapsed="0.000490"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:59.143959" elapsed="0.001118"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:59.143914" elapsed="0.001216"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:15:59.168736" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:15:59.169062" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:15:59.169281" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:15:59.159583" elapsed="0.009750"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:15:59.170158" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:15:59.169514" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:15:59.174950" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:15:59.170604" elapsed="0.004451"/>
</kw>
<status status="PASS" start="2026-09-12T23:15:59.170322" elapsed="0.004803"/>
</branch>
<status status="PASS" start="2026-09-12T23:15:59.169461" elapsed="0.005708"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:15:59.175415" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:15:59.181037" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:15:59.176465" elapsed="0.004733">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:15:59.176226" elapsed="0.005117">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:15:59.175954" elapsed="0.005512">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:15:59.158692" elapsed="0.022999">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:15:59.141813" elapsed="0.040215">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:01.184807" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:01.183925" elapsed="0.000978"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:01.185606" elapsed="0.000481"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:01.185072" elapsed="0.001096"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:01.185030" elapsed="0.001189"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:01.209140" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:01.209450" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:01.209676" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:01.200048" elapsed="0.009683"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:01.210527" elapsed="0.000054"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:01.209923" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:01.215286" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:01.211008" elapsed="0.004382"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:01.210723" elapsed="0.004737"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:01.209883" elapsed="0.005630"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:01.215811" elapsed="0.000379"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:01.221800" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:01.216883" elapsed="0.005121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:01.216570" elapsed="0.005583">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:01.216304" elapsed="0.005974">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:01.199138" elapsed="0.023433">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:01.183006" elapsed="0.039794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:03.225355" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:03.224513" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:03.226145" elapsed="0.000404"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:03.225585" elapsed="0.001069"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:03.225543" elapsed="0.001163"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:03.249817" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:03.250133" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:03.250323" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:03.239938" elapsed="0.010438"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:03.251145" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:03.250530" elapsed="0.000727"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:03.255821" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:03.251550" elapsed="0.004407"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:03.251304" elapsed="0.004720"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:03.250493" elapsed="0.005576"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:03.256315" elapsed="0.000357"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:03.261655" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:03.257308" elapsed="0.004494">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:03.257066" elapsed="0.004909">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:03.256782" elapsed="0.005427">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:03.239092" elapsed="0.023320">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:03.223687" elapsed="0.038914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:05.264154" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:05.263710" elapsed="0.000480"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:05.264529" elapsed="0.000234"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:05.264278" elapsed="0.000523"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:05.264256" elapsed="0.000597"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:05.276963" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:05.277114" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:05.277214" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:05.271362" elapsed="0.005876"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:05.277580" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:05.277312" elapsed="0.000342"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:05.279648" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:05.277793" elapsed="0.001904"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:05.277677" elapsed="0.002051"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:05.277293" elapsed="0.002455"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:05.279877" elapsed="0.000157"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:05.282285" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:05.280320" elapsed="0.002040">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:05.280208" elapsed="0.002279">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:05.280087" elapsed="0.002460">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:05.270987" elapsed="0.011666">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:05.263244" elapsed="0.019498">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:07.285194" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:07.284353" 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-09-12T23:16:07.285977" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:07.285424" elapsed="0.001039"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:07.285382" elapsed="0.001130"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:07.309316" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:07.309619" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:07.309813" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:07.300199" elapsed="0.009695"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:07.310644" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:07.310051" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:07.315212" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:07.311083" elapsed="0.004231"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:07.310804" elapsed="0.004578"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:07.310012" elapsed="0.005415"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:07.315697" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:07.321502" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:07.316683" elapsed="0.005089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:07.316421" elapsed="0.005531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:07.316169" elapsed="0.005907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:07.299349" elapsed="0.022924">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:07.283492" elapsed="0.038969">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:09.325019" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:09.324178" elapsed="0.000903"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:09.325775" elapsed="0.000444"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:09.325248" elapsed="0.001048"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:09.325206" elapsed="0.001142"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:09.348338" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:09.348640" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:09.348864" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:09.339675" elapsed="0.009247"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:09.349667" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:09.349077" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:09.354236" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:09.350103" elapsed="0.004234"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:09.349825" elapsed="0.004581"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:09.349039" elapsed="0.005410"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:09.354807" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:09.360196" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:09.355803" elapsed="0.004538">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:09.355538" elapsed="0.004945">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:09.355287" elapsed="0.005340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:09.338817" elapsed="0.022008">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:09.323328" elapsed="0.037721">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:11.363771" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:11.362951" 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-09-12T23:16:11.364531" elapsed="0.000466"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:11.364031" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:11.363989" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:11.387486" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:11.387799" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:11.388056" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:11.379076" elapsed="0.009052"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:11.389013" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:11.388321" elapsed="0.000815"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:11.394060" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:11.389633" elapsed="0.004531"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:11.389340" elapsed="0.004893"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:11.388272" elapsed="0.006007"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:11.394586" elapsed="0.000470"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:11.400399" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:11.395731" elapsed="0.004850">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:11.395441" elapsed="0.005308">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:11.395171" elapsed="0.005762">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:11.378042" elapsed="0.023093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:11.362065" elapsed="0.039257">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:13.404010" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:13.403094" elapsed="0.000980"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:13.404810" elapsed="0.000449"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:13.404246" elapsed="0.001093"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:13.404202" elapsed="0.001186"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:13.428121" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:13.428408" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:13.428745" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:13.419263" elapsed="0.009537"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:13.429632" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:13.428997" elapsed="0.000752"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:13.434356" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:13.430087" elapsed="0.004373"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:13.429800" elapsed="0.004731"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:13.428957" elapsed="0.005645"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:13.434916" elapsed="0.000346"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:13.440903" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:13.435973" elapsed="0.005114">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:13.435666" elapsed="0.005571">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:13.435374" elapsed="0.005988">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:13.418345" elapsed="0.023239">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:13.402190" elapsed="0.039592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:15.444396" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:15.443571" elapsed="0.000888"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:15.445186" elapsed="0.000431"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:15.444649" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:15.444607" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:15.468205" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:15.468607" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:15.468804" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:15.459064" elapsed="0.009824"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:15.469648" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:15.469048" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:15.474228" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:15.470091" elapsed="0.004238"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:15.469809" elapsed="0.004590"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:15.469009" elapsed="0.005435"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:15.474718" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:15.480094" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:15.475717" elapsed="0.004523">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:15.475455" elapsed="0.004928">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:15.475195" elapsed="0.005310">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:15.458179" elapsed="0.022545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:15.442673" elapsed="0.038270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:17.483446" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:17.482616" elapsed="0.000893"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:17.484230" elapsed="0.000537"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:17.483699" elapsed="0.001180"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:17.483657" elapsed="0.001274"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:17.507660" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:17.508058" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:17.508339" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:17.498627" elapsed="0.009783"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:17.509322" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:17.508647" elapsed="0.000788"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:17.514128" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:17.509761" elapsed="0.004469"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:17.509484" elapsed="0.004815"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:17.508595" elapsed="0.005747"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:17.514608" elapsed="0.000446"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:17.520282" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:17.515743" elapsed="0.004687">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:17.515480" elapsed="0.005121">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:17.515199" elapsed="0.005525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:17.497769" elapsed="0.023229">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:17.481767" elapsed="0.039424">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:19.523815" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:19.523007" 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-09-12T23:16:19.524592" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:19.524074" elapsed="0.001032"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:19.524032" elapsed="0.001122"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:19.548304" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:19.548634" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:19.548824" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:19.538409" elapsed="0.010499"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:19.549653" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:19.549066" elapsed="0.000700"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:19.554194" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:19.550086" elapsed="0.004207"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:19.549811" elapsed="0.004549"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:19.549027" elapsed="0.005377"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:19.554670" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:19.560418" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:19.555656" elapsed="0.004935">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:19.555398" elapsed="0.005340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:19.555144" elapsed="0.005747">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:19.537584" elapsed="0.023506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:19.522149" elapsed="0.039223">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:21.563991" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:21.563151" 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-09-12T23:16:21.564747" elapsed="0.000438"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:21.564222" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:21.564179" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:21.588604" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:21.588915" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:21.589111" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:21.578425" elapsed="0.010737"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:21.589948" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:21.589320" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:21.594440" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:21.590352" elapsed="0.004211"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:21.590109" elapsed="0.004524"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:21.589282" elapsed="0.005395"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:21.594950" elapsed="0.000326"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:21.600248" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:21.595923" elapsed="0.004469">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:21.595658" elapsed="0.004897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:21.595384" elapsed="0.005293">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:21.577597" elapsed="0.023395">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:21.562303" elapsed="0.038884">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:23.603727" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:23.602892" 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-09-12T23:16:23.604522" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:23.604001" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:23.603954" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:23.633147" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:23.633424" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:23.633664" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:23.621101" 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-09-12T23:16:23.634477" elapsed="0.000074"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:23.633905" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:23.639239" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:23.634947" elapsed="0.004398"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:23.634663" elapsed="0.004749"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:23.633865" elapsed="0.005592"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:23.639721" elapsed="0.000362"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:23.645038" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:23.640701" elapsed="0.004484">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:23.640441" elapsed="0.004884">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:23.640191" elapsed="0.005355">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:23.620141" elapsed="0.025604">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:23.602054" elapsed="0.043907">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:25.648544" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:25.647705" elapsed="0.000903"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:25.649311" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:25.648774" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:25.648732" elapsed="0.001167"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:25.671356" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:25.671661" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:25.671884" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:25.663142" elapsed="0.008795"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:25.672675" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:25.672093" elapsed="0.000694"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:25.677216" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:25.673111" elapsed="0.004206"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:25.672861" elapsed="0.004523"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:25.672055" elapsed="0.005371"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:25.677696" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:25.683417" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:25.678674" elapsed="0.004915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:25.678415" elapsed="0.005406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:25.678163" elapsed="0.005818">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:25.662290" elapsed="0.021890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:25.646886" elapsed="0.037549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:27.687162" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:27.686276" elapsed="0.000951"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:27.687999" elapsed="0.000436"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:27.687395" elapsed="0.001137"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:27.687353" elapsed="0.001229"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:27.710271" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:27.710571" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:27.710764" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:27.701827" elapsed="0.008989"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:27.711608" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:27.711016" elapsed="0.000705"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:27.716775" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:27.712416" elapsed="0.004493"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:27.711769" elapsed="0.005210"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:27.710977" elapsed="0.006048"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:27.717276" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:27.722629" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:27.718269" elapsed="0.004629">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:27.718028" elapsed="0.005017">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:27.717739" elapsed="0.005430">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:27.700997" elapsed="0.022369">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:27.685418" elapsed="0.038163">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:29.726213" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:29.725361" 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-09-12T23:16:29.726993" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:29.726444" elapsed="0.001055"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:29.726402" elapsed="0.001150"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:29.750879" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:29.751161" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:29.751375" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:29.741379" elapsed="0.010049"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:29.752207" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:29.751612" elapsed="0.000706"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:29.756780" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:29.752633" elapsed="0.004280"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:29.752366" elapsed="0.004616"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:29.751574" elapsed="0.005453"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:29.757355" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:29.762700" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:29.758346" elapsed="0.004530">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:29.758106" elapsed="0.004914">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:29.757823" elapsed="0.005319">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:29.740533" elapsed="0.022803">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:29.724532" elapsed="0.039014">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:31.766275" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:31.765404" elapsed="0.000942"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:31.767115" elapsed="0.000481"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:31.766566" elapsed="0.001112"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:31.766520" elapsed="0.001208"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:31.789936" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:31.790217" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:31.790438" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:31.781616" elapsed="0.008903"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:31.791300" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:31.790684" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:31.796226" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:31.791907" elapsed="0.004428"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:31.791604" elapsed="0.004800"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:31.790643" elapsed="0.005809"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:31.796769" elapsed="0.000386"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:31.802968" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:31.797874" elapsed="0.005254">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:31.797561" elapsed="0.005716">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:31.797271" elapsed="0.006129">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:31.780718" elapsed="0.022909">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:31.764510" elapsed="0.039311">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:33.806577" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:33.805673" 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-09-12T23:16:33.807364" elapsed="0.000507"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:33.806817" elapsed="0.001138"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:33.806772" elapsed="0.001235"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:33.834275" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:33.834620" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:33.834949" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:33.821861" 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-09-12T23:16:33.835796" elapsed="0.000089"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:33.835170" elapsed="0.000781"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:33.840607" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:33.836259" elapsed="0.004459"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:33.836003" elapsed="0.004805"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:33.835131" elapsed="0.005760"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:33.841148" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:33.846752" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:33.842195" elapsed="0.004741">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:33.841950" elapsed="0.005164">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:33.841630" elapsed="0.005616">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:33.820972" elapsed="0.026473">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:33.804763" elapsed="0.042909">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:35.850313" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:35.849449" elapsed="0.000930"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:35.851115" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:35.850576" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:35.850533" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:35.873937" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:35.874345" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:35.874589" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:35.865939" elapsed="0.008703"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:35.875396" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:35.874799" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:35.879987" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:35.875824" elapsed="0.004263"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:35.875574" elapsed="0.004580"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:35.874761" elapsed="0.005437"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:35.880440" elapsed="0.000352"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:35.885827" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:35.881423" elapsed="0.004586">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:35.881189" elapsed="0.004963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:35.880933" elapsed="0.005342">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:35.865049" elapsed="0.021442">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:35.848592" elapsed="0.038088">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:37.889388" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:37.888523" elapsed="0.000929"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:37.890186" elapsed="0.000537"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:37.889647" elapsed="0.001155"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:37.889603" elapsed="0.001279"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:37.913750" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:37.914107" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:37.914312" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:37.904328" elapsed="0.010037"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:37.915194" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:37.914554" elapsed="0.000754"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:37.919828" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:37.915634" elapsed="0.004327"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:37.915356" elapsed="0.004675"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:37.914511" elapsed="0.005564"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:37.920320" elapsed="0.000406"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:37.926239" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:37.921399" elapsed="0.004987">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:37.921158" elapsed="0.005397">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:37.920879" elapsed="0.005799">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:37.903357" elapsed="0.023546">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:37.887587" elapsed="0.039505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:39.929775" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:39.928970" 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-09-12T23:16:39.930562" elapsed="0.000441"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:39.930036" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:39.929993" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:39.953179" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:39.953480" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:39.953674" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:39.944438" elapsed="0.009289"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:39.954509" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:39.953915" elapsed="0.000709"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:39.959097" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:39.954947" elapsed="0.004253"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:39.954670" elapsed="0.004599"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:39.953874" elapsed="0.005438"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:39.959582" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:39.964973" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:39.960569" elapsed="0.004552">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:39.960310" elapsed="0.004956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:39.960056" elapsed="0.005334">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:39.943607" elapsed="0.022003">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:39.928130" elapsed="0.037788">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:41.968665" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:41.967794" elapsed="0.000938"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:41.969447" elapsed="0.000494"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:41.968943" elapsed="0.001079"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:41.968897" elapsed="0.001178"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:41.993598" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:41.993933" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:41.994156" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:41.984688" elapsed="0.009520"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:41.995014" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:41.994371" elapsed="0.000759"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:41.999651" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:41.995432" elapsed="0.004322"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:41.995181" elapsed="0.004642"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:41.994331" elapsed="0.005566"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:42.000145" elapsed="0.000359"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:42.005533" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:42.001140" elapsed="0.004542">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:42.000896" elapsed="0.004930">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:42.000613" elapsed="0.005367">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:41.983821" elapsed="0.022448">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:41.966905" elapsed="0.039582">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:44.009209" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:44.008350" elapsed="0.000923"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:44.009992" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:44.009440" elapsed="0.001059"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:44.009397" elapsed="0.001152"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:44.032942" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:44.033229" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:44.033423" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:44.023939" elapsed="0.009561"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:44.034264" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:44.033661" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:44.038898" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:44.034697" elapsed="0.004313"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:44.034425" elapsed="0.004655"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:44.033622" elapsed="0.005502"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:44.039369" elapsed="0.000357"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:44.045186" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:44.040361" elapsed="0.004972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:44.040123" elapsed="0.005377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:44.039864" elapsed="0.005853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:44.023085" elapsed="0.022868">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:44.007495" elapsed="0.038653">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:46.048717" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:46.047898" elapsed="0.000882"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:46.049509" elapsed="0.000445"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:46.048981" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:46.048938" elapsed="0.001144"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:46.072937" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:46.073220" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:46.073415" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:46.063560" elapsed="0.009930"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:46.074250" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:46.073648" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:46.078860" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:46.074683" elapsed="0.004283"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:46.074409" elapsed="0.004623"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:46.073609" elapsed="0.005467"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:46.079323" elapsed="0.000354"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:46.084692" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:46.080308" elapsed="0.004570">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:46.080070" elapsed="0.005062">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:46.079785" elapsed="0.005477">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:46.062711" elapsed="0.022772">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:46.047040" elapsed="0.038643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:48.088283" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:48.087444" 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-09-12T23:16:48.089064" elapsed="0.000428"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:48.088534" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:48.088491" elapsed="0.001130"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:48.112729" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:48.113067" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:48.113292" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:48.103731" elapsed="0.009613"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:48.114159" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:48.113530" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:48.118773" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:48.114590" elapsed="0.004314"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:48.114321" elapsed="0.004651"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:48.113487" elapsed="0.005530"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:48.119264" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:48.124775" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:48.120262" elapsed="0.004791">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:48.120015" elapsed="0.005188">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:48.119727" elapsed="0.005600">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:48.102875" elapsed="0.022673">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:48.086590" elapsed="0.039149">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:50.128338" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_AUTH_FAILURE" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:50.127519" elapsed="0.000882"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:50.129123" elapsed="0.000433"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:50.128590" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:50.128547" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:50.152745" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0u12lio7fik7r16jee5kx5pley3.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:50.153078" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '553'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:50.153271" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:50.142946" elapsed="0.010376"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:50.154103" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:50.153501" elapsed="0.000711"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:50.158648" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:50.154532" elapsed="0.004218"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:50.154259" elapsed="0.004558"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:50.153439" elapsed="0.005461"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:50.159244" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:50.165075" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:50.160275" elapsed="0.004945">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_AUTH_FAILURE"</var>
<status status="FAIL" start="2026-09-12T23:16:50.160032" elapsed="0.005332">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:50.159716" elapsed="0.005793">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:50.142095" elapsed="0.023611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:50.126658" elapsed="0.039270">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<msg time="2026-09-12T23:16:50.166107" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>FAILED_AUTH_FAILURE</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-12T23:15:18.337010" elapsed="91.829303">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:16:50.166685" elapsed="0.000045"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:50.168338" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:16:50.486637" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:16:50.486989" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:16:50.487080" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:16:50.487162" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:50.167997" elapsed="0.319211"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:50.488235" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:50.487622" elapsed="0.000793"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:50.489096" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:16:50.848696" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:16:50.849061" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:16:50.849149" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:16:50.849228" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:50.488724" elapsed="0.360549"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:50.850132" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:16:50.927508" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:16:50.927762" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:16:50.927894" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:16:50.927994" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:50.849698" elapsed="0.078343"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:50.928611" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:16:50.973211" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:50.928372" elapsed="0.044966"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:50.988230" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0u12lio7fik7r16jee5kx5pley3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:50.988320" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:50.988526" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:50.973660" elapsed="0.014918"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:50.997415" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0u12lio7fik7r16jee5kx5pley3.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:50.997693" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:16:50.997936" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:50.988891" elapsed="0.009099"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:16:50.167337" elapsed="0.830789"/>
</kw>
<doc>CallHome SSH device registered with wrong global credentials should fail to mount.</doc>
<status status="FAIL" start="2026-09-12T23:15:17.478065" elapsed="93.520159">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCQMWtPU4DwdQJYGQG0oz7c9aD2OQtjV8qmYg8RWQdxow5CgrWXaaRjoPF0p1vI61LAR/BaalhKuSqi7kkxLmPeoCxvBLZp4QruyCAzrr2EeRzOXovww3JM9bvmSAShzXbpm2pjhogHBEO9MOQHHzOWOZsEIB09vj55U+FGoeLBSDaYDd9qS0w+ajthLqUiyNOiceCA5iBv1GQtAgVSkr+MbYRkhmQI5UP38UgI36NdUpxslazn9wQ3MCY72yUxEuHGk1O5MqjmylznbEnHaDIRtWQfmG+Vtpo+zW1RNdTXe1dozoZuYY1NRsjmPTc7/8afAskMnx7xXOH+lEqItwUz"}}]}}}' does not contain '"device-status":"FAILED_AUTH_FAILURE"'</status>
</test>
<test id="s1-s1-t5" name="CallHome with Incorrect Node-id" line="91">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:51.001535" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e68b3810&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:16:51.000997" elapsed="0.000833"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.002339" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:16:51.024951" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:51.002147" elapsed="0.022933"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.025621" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:16:51.239011" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:51.025384" elapsed="0.213763"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.239722" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:16:51.293477" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:16:51.293702" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDBbMAI5c+wUmIjj+sm1BqTpRt/jom6xClLprBhhoQ+dh5mkjB2j5YSNYstLHfmtCCm8N1kRkFpNKZqAR2tR5boAHIJ6vpB+7hJFWmsU7p8dgD4oZ1u8f1TO80P/CAQIaf6AeTkzR44iBVwd/wIElfNAsgVWtEvlrC9cdhvh9cb...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:51.239497" elapsed="0.054390"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.301773" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQDBbMAI5c+wUmIjj+sm1BqTpRt/jom6xClLprBhhoQ+dh5mkjB2j5YSNYstLHfmtCCm8N1kRkFpNKZqAR2tR5boAHIJ6vpB+7hJFWmsU7p8dgD4oZ1u8f1TO80P/CAQIaf6AeTkzR44iBVwd/wIElfNAsgVWtEvlrC9cdhvh9cb...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:16:51.294243" elapsed="0.007671"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:16:51.000414" elapsed="0.301633"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.341406" 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-09-12T23:16:51.303012" elapsed="0.038557"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.350103" 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-09-12T23:16:51.341886" elapsed="0.008333"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-12T23:16:51.302392" elapsed="0.047950"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:16:51.358655" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:51.351562" elapsed="0.007200"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:16:51.359967" 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-09-12T23:16:51.360237" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:16:51.359640" elapsed="0.000648"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.361352" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:16:51.360602" elapsed="0.000835"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:51.359118" elapsed="0.002454"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:51.358815" elapsed="0.002804"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:51.351517" elapsed="0.010145"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.362425" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}"...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.361955" elapsed="0.000544"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.363248" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
   ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.362781" elapsed="0.000517"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.364060" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
         ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.363594" elapsed="0.000519"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.364875" level="INFO">${body} = {
    "device": {
        "unique-id": "incorrect_hostname",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
         ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.364385" elapsed="0.000544"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:51.388688" level="INFO">POST Request : url=http://10.30.171.31: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:16:51.388899" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node01o1ft3me8cw651e7eogtzcp3ut4.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:16:51 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=incorrect_hostname', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:51.389103" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:51.365186" elapsed="0.023970"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:16:51.389487" elapsed="0.004259"/>
</kw>
<arg>incorrect_hostname</arg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>root</arg>
<arg>root</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:16:51.350872" elapsed="0.043030"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:16:51.408875" 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-09-12T23:16:51.409140" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ_HOST_KEY_ONLY}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:16:51.408550" elapsed="0.000641"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.410248" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:16:51.409513" elapsed="0.000846"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:51.408002" elapsed="0.002530"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:51.401277" elapsed="0.009326"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:16:51.411032" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:51.410677" elapsed="0.000456"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:51.401240" elapsed="0.009932"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.411952" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.411426" elapsed="0.000578"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.412740" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.412282" elapsed="0.000508"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.413549" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "{hostkey}"
        }
    }
}
</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.413096" elapsed="0.000503"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:51.414332" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDBbMAI5c+wUmIjj+sm1BqTpRt/jom6xClLprBhhoQ+dh5mkjB2j5YSNYstLHfm...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:51.413900" elapsed="0.000483"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:51.427388" level="INFO">POST Request : url=http://10.30.171.31: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=node01o1ft3me8cw651e7eogtzcp3ut4.node0', 'Content-Length': '500', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body={
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
            "host-key": "AAAAB3NzaC1yc2EAAAADAQABAAABAQDBbMAI5c+wUmIjj+sm1BqTpRt/jom6xClLprBhhoQ+dh5mkjB2j5YSNYstLHfmtCCm8N1kRkFpNKZqAR2tR5boAHIJ6vpB+7hJFWmsU7p8dgD4oZ1u8f1TO80P/CAQIaf6AeTkzR44iBVwd/wIElfNAsgVWtEvlrC9cdhvh9cbtD5Rq503khwfGilIkPsOMKm5LS2AfyYQNTnVApb/CL5V0tfdgM9tJE7gT52YDdY81m0K9PUoO0dIffpN5s+XAsIwQbc27s2ClPcuzkjt3O6X5ODb838oHlrjhnT3yFDeD1F/A11baNdeTxR21+22GZ5O2LvLJKp9FYVo/6MSkaAh"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:16:51.427477" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:51.427597" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:51.414670" elapsed="0.012958"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:16:51.427866" elapsed="0.003287"/>
</kw>
<arg>netopeer2</arg>
<arg>${NETOPEER_PUB_KEY}</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:16:51.394383" elapsed="0.036898"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.432048" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-12T23:16:51.758808" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:16:51.759149" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:16:51.759236" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:16:51.759315" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:51.431588" elapsed="0.327773"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.762628" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"DISCONNECTED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:51.761878" elapsed="0.000806"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="NOT RUN" start="2026-09-12T23:16:51.763359" elapsed="0.000043"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:51.762867" elapsed="0.000634"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:51.762797" elapsed="0.000754"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:51.785358" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node01o1ft3me8cw651e7eogtzcp3ut4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:51.785678" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBbMAI5c+wUmIjj+sm1BqTpRt/jom6xClLprBhhoQ+dh5mkjB2j5YSNYstLHfmtCCm8N1kRkFpNKZqAR2tR5boAHIJ6vpB+7hJFWmsU7p8dgD4oZ1u8f1TO80P/CAQIaf6AeTkzR44iBVwd/wIElfNAsgVWtEvlrC9cdhvh9cbtD5Rq503khwfGilIkPsOMKm5LS2AfyYQNTnVApb/CL5V0tfdgM9tJE7gT52YDdY81m0K9PUoO0dIffpN5s+XAsIwQbc27s2ClPcuzkjt3O6X5ODb838oHlrjhnT3yFDeD1F/A11baNdeTxR21+22GZ5O2LvLJKp9FYVo/6MSkaAh"}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:51.785930" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:51.777262" elapsed="0.008723"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:51.786730" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:51.786140" elapsed="0.000731"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.791328" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"incorrect_hostname","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}},{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQDBbMAI5c+wUmIjj+sm1BqTpRt/jom6xClLprBhhoQ+dh5mkjB2j5YSNYstLHfmtCCm8N1kRkFpNKZqAR2tR5boAHIJ6vpB+7hJFWmsU7p8dgD4oZ1u8f1TO80P/CAQIaf6AeTkzR44iBVwd/wIElfNAsgVWtEvlrC9cdhvh9cbtD5Rq503khwfGilIkPsOMKm5LS2AfyYQNTnVApb/CL5V0tfdgM9tJE7gT52YDdY81m0K9PUoO0dIffpN5s+XAsIwQbc27s2ClPcuzkjt3O6X5ODb838oHlrjhnT3yFDeD1F/A11baNdeTxR21+22GZ5O2LvLJKp9FYVo/6MSkaAh"}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:51.787167" elapsed="0.004269"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:51.786922" elapsed="0.004603"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:51.786102" elapsed="0.005468"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:51.791814" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:16:51.792983" elapsed="0.004298"/>
</kw>
<var name="${i}">"unique-id":"netopeer2"</var>
<status status="PASS" start="2026-09-12T23:16:51.792704" elapsed="0.004657"/>
</iter>
<iter>
<kw name="Should Contain" owner="BuiltIn">
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:16:51.797781" elapsed="0.004368"/>
</kw>
<var name="${i}">"device-status":"DISCONNECTED"</var>
<status status="PASS" start="2026-09-12T23:16:51.797544" elapsed="0.004686"/>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="PASS" start="2026-09-12T23:16:51.792285" elapsed="0.010005"/>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="PASS" start="2026-09-12T23:16:51.776361" elapsed="0.026034"/>
</kw>
<arg>DISCONNECTED</arg>
<doc>Checks the operational device status.</doc>
<status status="PASS" start="2026-09-12T23:16:51.761136" elapsed="0.041390"/>
</kw>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>DISCONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-12T23:16:51.759813" elapsed="0.042805"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Run Keyword And Expect Error" owner="BuiltIn">
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:51.843858" level="INFO">GET Request : url=http://10.30.171.31: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=node01o1ft3me8cw651e7eogtzcp3ut4.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:51.844043" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/network-topology:network-topology/topology=topology-netconf?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '990'} 
 body={"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]} 
 </msg>
<msg time="2026-09-12T23:16:51.844176" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:51.816759" elapsed="0.027449"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:51.844717" elapsed="0.000032"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:51.844317" elapsed="0.000470"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.847573" level="INFO">{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:51.844997" elapsed="0.002644"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:51.844816" elapsed="0.002867"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:51.844289" elapsed="0.003420"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:51.847881" elapsed="0.000209"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:51.851218" level="FAIL">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:51.848484" elapsed="0.002834">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</kw>
<var name="${i}">"connection-status":"connected"</var>
<status status="FAIL" start="2026-09-12T23:16:51.848317" elapsed="0.003094">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:51.848159" elapsed="0.003362">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</for>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:51.816166" elapsed="0.035581">'{"network-topology:topology":[{"topology-id":"topology-netconf","topology-types":{"netconf-node-topology:topology-netconf":{"ssh-transport-topology-parameters":{"mac":{"mac-alg":["hmac-sha2-256","hmac-sha2-512","hmac-sha1"]},"host-key":{"host-key-alg":["ecdsa-sha2-nistp256","ecdsa-sha2-nistp384","ecdsa-sha2-nistp521","ssh-ed25519","rsa-sha2-512","rsa-sha2-256","ssh-rsa"]},"key-exchange":{"key-exchange-alg":["sntrup761x25519-sha512","mlkem768x25519-sha256","mlkem1024nistp384-sha384","mlkem768nistp256-sha256","curve25519-sha256","curve448-sha512","ecdh-sha2-nistp521","ecdh-sha2-nistp384","ecdh-sha2-nistp256","diffie-hellman-group-exchange-sha256","diffie-hellman-group18-sha512","diffie-hellman-group17-sha512","diffie-hellman-group16-sha512","diffie-hellman-group15-sha512","diffie-hellman-group14-sha256"]},"encryption":{"encryption-alg":["chacha20-poly1305","aes128-ctr","aes192-ctr","aes256-ctr","AEAD_AES_128_GCM","AEAD_AES_256_GCM","aes128-cbc","aes192-cbc","aes256-cbc"]}}}}}]}' does not contain '"connection-status":"connected"'</status>
</kw>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the keyword and checks that the expected error occurred.</doc>
<status status="PASS" start="2026-09-12T23:16:51.803982" elapsed="0.048021"/>
</kw>
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-12T23:16:51.802962" elapsed="0.049112"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:51.853040" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:16:52.189873" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:16:52.190151" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:16:52.190239" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:16:52.190319" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:51.852799" elapsed="0.337565"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:52.191329" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:52.190747" elapsed="0.000663"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:52.192064" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:16:52.562624" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:16:52.563017" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:16:52.563110" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:16:52.563190" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:52.191702" elapsed="0.371534"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:52.564138" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:16:52.628898" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:16:52.629127" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:16:52.629212" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:16:52.629288" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:52.563679" elapsed="0.065651"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:52.629935" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:16:52.681268" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:52.629703" elapsed="0.051691"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:52.696092" level="INFO">DELETE Request : url=http://10.30.171.31: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=node01o1ft3me8cw651e7eogtzcp3ut4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:52.696184" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:52.696383" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:52.681704" elapsed="0.014731"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:52.704229" level="INFO">DELETE Request : url=http://10.30.171.31: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=node01o1ft3me8cw651e7eogtzcp3ut4.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:52.704512" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:16:52.704713" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:52.696747" elapsed="0.008017"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:16:51.852405" elapsed="0.852526"/>
</kw>
<doc>CallHome from device that does not have an entry in per-device credential with result to mount point failure.</doc>
<status status="PASS" start="2026-09-12T23:16:50.999037" elapsed="1.705982"/>
</test>
<test id="s1-s1-t6" name="CallHome with Rogue Devices" line="111">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:52.707998" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e6a46150&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:16:52.707431" elapsed="0.000843"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:52.708781" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:16:52.733194" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:52.708584" elapsed="0.024722"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:52.733787" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:16:53.018561" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:52.733598" elapsed="0.285135"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:53.019384" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:16:53.073240" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:16:53.073456" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCurZXbZqwyCbcszmDH54A5O/Jb8GWzJdQe3q4sqNbyLkawi4IOK+L2vsC30uBKaTARfw+s2hT6A1BWdoYio1GxtSvKcrdA4hhPbhX46hnnYedZNTnoJpb5pBMF0waN1QQIzqYho30RmzAmm8ZrKyQzqETOk+nGBHSJknZ/m2Pi...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:53.019133" elapsed="0.054401"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:16:53.081341" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQCurZXbZqwyCbcszmDH54A5O/Jb8GWzJdQe3q4sqNbyLkawi4IOK+L2vsC30uBKaTARfw+s2hT6A1BWdoYio1GxtSvKcrdA4hhPbhX46hnnYedZNTnoJpb5pBMF0waN1QQIzqYho30RmzAmm8ZrKyQzqETOk+nGBHSJknZ/m2Pi...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:16:53.073914" elapsed="0.007521"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:16:52.706804" elapsed="0.374778"/>
</kw>
<kw name="Apply SSH-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:16:53.117258" 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-09-12T23:16:53.082511" elapsed="0.034875"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:16:53.126280" 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-09-12T23:16:53.117706" elapsed="0.008687"/>
</kw>
<doc>Upload netopeer2 configuration files needed for SSH transport</doc>
<status status="PASS" start="2026-09-12T23:16:53.081960" elapsed="0.044581"/>
</kw>
<kw name="Register SSH call-home device in ODL controller" owner="NetconfCallHome">
<if>
<branch type="IF" condition="'${username}' == '${EMPTY}' or '${password}' == '${EMPTY}'">
<kw name="Get create device request without credentials template" owner="NetconfCallHome">
<status status="NOT RUN" start="2026-09-12T23:16:53.134584" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:53.127794" elapsed="0.006895"/>
</branch>
<branch type="ELSE">
<kw name="Get create device request template" owner="NetconfCallHome">
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:16:53.135894" 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-09-12T23:16:53.136166" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<var>${template}</var>
<arg>${CREATE_SSH_DEVICE_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:16:53.135576" elapsed="0.000641"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:16:53.137216" level="INFO">${template} = {
    "device": {
        "unique-id": "{device_name}",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
  ...</msg>
<arg>${template}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:16:53.136537" elapsed="0.000763"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:53.135043" elapsed="0.002362"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:53.134744" elapsed="0.002707"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:53.127750" elapsed="0.009767"/>
</if>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:53.138283" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "{username}",
              "passwords": [ "{password}" ]
      ...</msg>
<var>${body}</var>
<arg>${template}</arg>
<arg>{device_name}</arg>
<arg>${device_name}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:53.137781" elapsed="0.000554"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:53.139104" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "{password}" ]
          },...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{username}</arg>
<arg>${username}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:53.138628" elapsed="0.000610"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:53.140019" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{password}</arg>
<arg>${password}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:53.139543" elapsed="0.000528"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:16:53.140802" level="INFO">${body} = {
    "device": {
        "unique-id": "netopeer2",
        "ssh-client-params": {
          "credentials": {
              "username": "root",
              "passwords": [ "root" ]
          },
     ...</msg>
<var>${body}</var>
<arg>${body}</arg>
<arg>{hostkey}</arg>
<arg>${hostkey}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="PASS" start="2026-09-12T23:16:53.140343" elapsed="0.000539"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:53.156126" level="INFO">POST Request : url=http://10.30.171.31: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": "AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n"
        }
    }
}
 
 </msg>
<msg time="2026-09-12T23:16:53.156241" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=201, reason=Created 
 headers={'Set-Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:16:53 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Location': 'http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices/device=netopeer2', 'Content-Length': '0'} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:53.156423" level="INFO">${resp} = &lt;Response [201]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:53.141141" elapsed="0.015353"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-12T23:16:53.156797" elapsed="0.004356"/>
</kw>
<arg>netopeer2</arg>
<arg>${INCORRECT_PUB_KEY}</arg>
<arg>root</arg>
<arg>root</arg>
<doc>Registration call-home device with SSH transport using latest models</doc>
<status status="PASS" start="2026-09-12T23:16:53.127088" elapsed="0.034191"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:16:53.161952" level="INFO">Executing command 'docker-compose up -d'.</msg>
<msg time="2026-09-12T23:16:53.417383" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:16:53.417674" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:16:53.417761" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:16:53.417883" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:16:53.161583" elapsed="0.256349"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:53.421056" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:53.420286" elapsed="0.000826"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:53.421775" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:53.421264" elapsed="0.001019"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:53.421222" elapsed="0.001110"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:53.445166" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:53.445442" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:53.445682" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:53.436139" elapsed="0.009596"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:53.446586" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:53.445922" elapsed="0.000861"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:53.451353" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:53.447120" elapsed="0.004336"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:53.446865" elapsed="0.004683"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:53.445882" elapsed="0.005710"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:53.451872" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:53.457344" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:53.452866" elapsed="0.004646">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:16:53.452602" elapsed="0.005055">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:53.452316" elapsed="0.005466">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:53.435280" elapsed="0.022734">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:53.419566" elapsed="0.038643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:55.460875" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:55.460020" 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-09-12T23:16:55.461637" elapsed="0.000447"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:55.461108" elapsed="0.001053"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:55.461065" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:55.484150" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:55.484426" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:55.484740" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:55.475712" elapsed="0.009080"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:55.485580" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:55.484984" elapsed="0.000708"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:55.490182" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:55.486022" elapsed="0.004263"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:55.485740" elapsed="0.004612"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:55.484944" elapsed="0.005452"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:55.490674" elapsed="0.000364"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:55.496520" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:55.491665" elapsed="0.005004">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:16:55.491405" elapsed="0.005409">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:55.491149" elapsed="0.005825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:55.474886" elapsed="0.022289">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:55.459129" elapsed="0.038241">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:57.500082" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:57.499233" 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-09-12T23:16:57.500865" elapsed="0.000414"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:57.500312" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:57.500270" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:57.523806" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:57.524220" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:57.524415" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:57.514731" elapsed="0.009756"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:57.525250" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:57.524648" elapsed="0.000717"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:57.529928" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:57.525682" elapsed="0.004350"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:57.525413" elapsed="0.004688"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:57.524609" elapsed="0.005538"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:57.530393" elapsed="0.000357"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:57.535824" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:57.531385" elapsed="0.004618">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:16:57.531149" elapsed="0.005000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:57.530891" elapsed="0.005384">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:57.513905" elapsed="0.022595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:57.498333" elapsed="0.038364">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:16:59.539357" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:16:59.538535" elapsed="0.000887"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:16:59.540142" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:59.539611" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:59.539568" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:16:59.563253" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:16:59.563562" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:16:59.563781" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:16:59.554469" elapsed="0.009394"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:16:59.564636" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:16:59.564028" elapsed="0.000721"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:16:59.569248" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:16:59.565076" elapsed="0.004275"/>
</kw>
<status status="PASS" start="2026-09-12T23:16:59.564795" elapsed="0.004626"/>
</branch>
<status status="PASS" start="2026-09-12T23:16:59.563989" elapsed="0.005475"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:16:59.569732" elapsed="0.000369"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:16:59.575129" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:16:59.570725" elapsed="0.004548">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:16:59.570464" elapsed="0.004951">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:16:59.570210" elapsed="0.005354">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:16:59.553627" elapsed="0.022137">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:59.537676" elapsed="0.038400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:01.578701" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:01.577886" 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-09-12T23:17:01.579494" elapsed="0.000449"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:01.578972" elapsed="0.001050"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:01.578925" elapsed="0.001146"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:01.602618" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:01.602942" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:01.603142" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:01.593280" elapsed="0.009912"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:01.603969" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:01.603348" elapsed="0.000736"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:01.608577" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:01.604377" elapsed="0.004303"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:01.604131" elapsed="0.004618"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:01.603309" elapsed="0.005484"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:01.609071" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:01.614866" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:01.610054" elapsed="0.004961">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:01.609790" elapsed="0.005392">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:01.609534" elapsed="0.005848">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:01.592435" elapsed="0.023426">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:01.577008" elapsed="0.039068">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:03.618543" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:03.617688" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:03.619310" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:03.618771" elapsed="0.001048"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:03.618729" elapsed="0.001171"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:03.641748" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:03.642075" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:03.642267" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:03.633204" elapsed="0.009115"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:03.643109" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:03.642477" elapsed="0.000746"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:03.647700" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:03.643538" elapsed="0.004267"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:03.643271" elapsed="0.004634"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:03.642438" elapsed="0.005513"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:03.648195" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:03.653575" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:03.649193" elapsed="0.004526">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:03.648955" elapsed="0.004937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:03.648664" elapsed="0.005447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:03.632351" elapsed="0.021965">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:03.616875" elapsed="0.037656">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:05.657334" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:05.656440" elapsed="0.000959"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:05.658119" elapsed="0.000432"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:05.657589" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:05.657546" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:05.680988" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:05.681270" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:05.681484" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:05.672508" elapsed="0.009051"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:05.682317" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:05.681718" elapsed="0.000710"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:05.686919" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:05.682742" elapsed="0.004282"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:05.682476" elapsed="0.004619"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:05.681679" elapsed="0.005459"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:05.687382" elapsed="0.000356"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:05.692742" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:05.688373" elapsed="0.004549">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:05.688135" elapsed="0.005011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:05.687877" elapsed="0.005396">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:05.671647" elapsed="0.021825">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:05.655541" elapsed="0.038150">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:07.696220" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:07.695368" elapsed="0.000917"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:07.696999" elapsed="0.000411"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:07.696449" elapsed="0.001038"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:07.696408" elapsed="0.001152"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:07.720224" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:07.720525" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:07.720721" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:07.710740" elapsed="0.010033"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:07.721548" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:07.720965" elapsed="0.000697"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:07.726127" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:07.721993" elapsed="0.004237"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:07.721709" elapsed="0.004590"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:07.720925" elapsed="0.005417"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:07.726611" elapsed="0.000360"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:07.732360" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:07.727590" elapsed="0.005037">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:07.727333" elapsed="0.005443">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:07.727082" elapsed="0.005849">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:07.709925" elapsed="0.023209">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:07.694532" elapsed="0.038794">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:09.735879" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:09.735036" elapsed="0.000906"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:09.736632" elapsed="0.000439"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:09.736108" elapsed="0.001040"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:09.736067" elapsed="0.001132"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:09.759097" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:09.759376" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:09.759593" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:09.750442" elapsed="0.009205"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:09.760417" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:09.759805" elapsed="0.000751"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:09.765155" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:09.760877" elapsed="0.004471"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:09.760604" elapsed="0.004815"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:09.759767" elapsed="0.005695"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:09.765732" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:09.771133" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:09.766728" elapsed="0.004551">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:09.766466" elapsed="0.004956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:09.766210" elapsed="0.005360">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:09.749603" elapsed="0.022168">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:09.734185" elapsed="0.037809">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:11.774505" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:11.773686" 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-09-12T23:17:11.775290" elapsed="0.000434"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:11.774758" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:11.774716" elapsed="0.001164"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:11.800739" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:11.801059" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:11.801356" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:11.789579" elapsed="0.011830"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:11.802198" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:11.801596" elapsed="0.000715"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:11.806797" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:11.802623" elapsed="0.004309"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:11.802357" elapsed="0.004645"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:11.801555" elapsed="0.005491"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:11.807401" elapsed="0.000528"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:11.813040" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:11.808589" elapsed="0.004602">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:11.808316" elapsed="0.005020">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:11.808049" elapsed="0.005413">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:11.788722" elapsed="0.024966">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:11.772831" elapsed="0.041080">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:13.816503" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:13.815683" 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-09-12T23:17:13.817284" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:13.816755" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:13.816712" elapsed="0.001158"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:13.842071" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:13.842451" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:13.842675" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:13.831365" elapsed="0.011363"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:13.843487" elapsed="0.000082"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:13.842917" elapsed="0.000718"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:13.848144" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:13.843959" elapsed="0.004288"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:13.843683" elapsed="0.004632"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:13.842875" elapsed="0.005486"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:13.848631" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:13.854402" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:13.849622" elapsed="0.004956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:13.849362" elapsed="0.005359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:13.849106" elapsed="0.005769">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:13.830435" elapsed="0.024645">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:13.814818" elapsed="0.040453">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:15.857954" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:15.857109" 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-09-12T23:17:15.858738" elapsed="0.000438"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:15.858185" elapsed="0.001069"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:15.858142" elapsed="0.001161"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:15.884160" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:15.884439" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:15.884661" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:15.872706" elapsed="0.012008"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:15.885458" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:15.884898" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:15.890028" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:15.885915" elapsed="0.004216"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:15.885636" elapsed="0.004564"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:15.884829" elapsed="0.005415"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:15.890487" elapsed="0.000381"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:15.895829" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:15.891468" elapsed="0.004541">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:15.891233" elapsed="0.004919">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:15.890978" elapsed="0.005296">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:15.871779" elapsed="0.024691">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:15.856267" elapsed="0.040510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:17.899394" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:17.898509" elapsed="0.000950"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:17.900179" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:17.899648" elapsed="0.001046"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:17.899605" elapsed="0.001138"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:17.925745" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:17.926069" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:17.926287" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:17.914462" elapsed="0.011877"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:17.927131" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:17.926498" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:17.931728" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:17.927577" elapsed="0.004253"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:17.927293" elapsed="0.004642"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:17.926456" elapsed="0.005527"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:17.932230" elapsed="0.000353"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:17.937621" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:17.933225" elapsed="0.004545">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:17.932981" elapsed="0.004965">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:17.932694" elapsed="0.005377">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:17.913618" elapsed="0.024739">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:17.897662" elapsed="0.040910">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:19.941107" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:19.940265" elapsed="0.000905"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:19.941889" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:19.941335" elapsed="0.001035"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:19.941293" elapsed="0.001126"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:19.967344" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:19.967651" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:19.967874" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:19.955649" elapsed="0.012280"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:19.968673" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:19.968084" elapsed="0.000701"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:19.973279" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:19.969122" elapsed="0.004259"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:19.968832" elapsed="0.004615"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:19.968045" elapsed="0.005446"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:19.973789" elapsed="0.000363"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:19.979526" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:19.974779" elapsed="0.004919">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:19.974514" elapsed="0.005358">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:19.974261" elapsed="0.005826">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:19.954782" elapsed="0.025507">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:19.939415" elapsed="0.041066">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:21.983011" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:21.982177" 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-09-12T23:17:21.983764" elapsed="0.000435"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:21.983239" elapsed="0.001036"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:21.983196" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:22.009191" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:22.009472" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:22.009701" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:21.997580" elapsed="0.012174"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:22.010533" elapsed="0.000072"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:22.009948" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:22.015160" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:22.010998" elapsed="0.004266"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:22.010718" elapsed="0.004613"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:22.009906" elapsed="0.005470"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:22.015760" elapsed="0.000367"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:22.021204" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:22.016761" elapsed="0.004591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:22.016493" elapsed="0.005116">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:22.016238" elapsed="0.005503">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:21.996733" elapsed="0.025240">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:21.981346" elapsed="0.040822">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:24.024662" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:24.023812" 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-09-12T23:17:24.025422" elapsed="0.000461"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:24.024920" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:24.024877" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:24.049699" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:24.050024" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:24.050239" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:24.039645" elapsed="0.010647"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:24.051076" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:24.050446" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:24.055646" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:24.051484" elapsed="0.004267"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:24.051236" elapsed="0.004583"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:24.050408" elapsed="0.005486"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:24.056143" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:24.061467" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:24.057135" elapsed="0.004592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:24.056893" elapsed="0.005011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:24.056606" elapsed="0.005425">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:24.038786" elapsed="0.023445">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:24.023009" elapsed="0.039414">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:26.065040" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:26.064196" elapsed="0.000906"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:26.065782" elapsed="0.000571"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:26.065266" elapsed="0.001163"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:26.065223" elapsed="0.001258"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:26.090396" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:26.090697" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:26.090917" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:26.079625" elapsed="0.011345"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:26.091702" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:26.091121" elapsed="0.000692"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:26.096235" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:26.092133" elapsed="0.004289"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:26.091889" elapsed="0.004601"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:26.091083" elapsed="0.005450"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:26.096799" elapsed="0.000374"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:26.105042" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:26.097795" elapsed="0.007394">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:26.097535" elapsed="0.007799">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:26.097281" elapsed="0.008178">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:26.078788" elapsed="0.026890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:26.063320" elapsed="0.042576">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:28.108484" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:28.107660" elapsed="0.000887"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:28.109270" elapsed="0.000430"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:28.108738" elapsed="0.001039"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:28.108697" elapsed="0.001129"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:28.135448" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:28.135753" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:28.136076" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:28.123158" elapsed="0.012971"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:28.136932" elapsed="0.000053"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:28.136282" elapsed="0.000765"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:28.141463" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:28.137345" elapsed="0.004219"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:28.137095" elapsed="0.004564"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:28.136245" elapsed="0.005459"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:28.141977" elapsed="0.000329"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:28.147318" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:28.142957" elapsed="0.004505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:28.142690" elapsed="0.004937">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:28.142415" elapsed="0.005340">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:28.122301" elapsed="0.025678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:28.106798" elapsed="0.041374">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:30.150799" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:30.149989" 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-09-12T23:17:30.151567" elapsed="0.000459"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:30.151065" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:30.151020" elapsed="0.001131"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:30.176685" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:30.177091" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:30.177307" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:30.166124" elapsed="0.011234"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:30.178137" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:30.177514" elapsed="0.000737"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:30.182701" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:30.178543" elapsed="0.004261"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:30.178298" elapsed="0.004604"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:30.177475" elapsed="0.005474"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:30.183195" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:30.188526" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:30.184179" elapsed="0.004521">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:30.183939" elapsed="0.004933">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:30.183653" elapsed="0.005349">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:30.165272" elapsed="0.023928">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:30.149127" elapsed="0.040265">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:32.192075" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:32.191225" elapsed="0.000913"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:32.192832" elapsed="0.000438"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:32.192306" elapsed="0.001044"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:32.192263" elapsed="0.001138"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:32.217871" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:32.218158" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:32.218351" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:32.206703" elapsed="0.011699"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:32.219184" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:32.218559" elapsed="0.000738"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:32.223755" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:32.219592" elapsed="0.004294"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:32.219344" elapsed="0.004612"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:32.218521" elapsed="0.005479"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:32.224244" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:32.230092" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:32.225228" elapsed="0.005011">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:32.224989" elapsed="0.005394">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:32.224706" elapsed="0.005800">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:32.205872" elapsed="0.024853">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:32.190376" elapsed="0.040679">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:34.233668" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:34.232859" 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-09-12T23:17:34.234426" elapsed="0.000460"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:34.233926" elapsed="0.001038"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:34.233882" elapsed="0.001131"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:34.258656" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:34.258986" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:34.259183" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:34.248424" elapsed="0.010811"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:34.260018" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:34.259392" elapsed="0.000741"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:34.264575" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:34.260429" elapsed="0.004276"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:34.260180" elapsed="0.004594"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:34.259354" elapsed="0.005465"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:34.265098" elapsed="0.000331"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:34.270450" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:34.266085" elapsed="0.004510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:34.265817" elapsed="0.004950">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:34.265539" elapsed="0.005385">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:34.247572" elapsed="0.023643">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:34.232018" elapsed="0.039391">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:36.273981" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:36.273131" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:36.274739" elapsed="0.000444"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:36.274216" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:36.274174" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:36.300585" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:36.300935" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:36.301158" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:36.289125" 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-09-12T23:17:36.301998" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:36.301371" elapsed="0.000740"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:36.306555" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:36.302406" elapsed="0.004277"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:36.302158" elapsed="0.004595"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:36.301333" elapsed="0.005465"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:36.307078" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:36.312425" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:36.308066" elapsed="0.004506">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:36.307798" elapsed="0.004953">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:36.307517" elapsed="0.005475">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:36.288126" elapsed="0.025075">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:36.272272" elapsed="0.041124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:38.316183" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:38.315265" 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-09-12T23:17:38.317031" elapsed="0.000423"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:38.316423" elapsed="0.001111"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:38.316378" elapsed="0.001206"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:38.341752" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:38.342085" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:38.342279" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:38.331055" elapsed="0.011274"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:38.343112" elapsed="0.000064"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:38.342484" elapsed="0.000772"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:38.347870" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:38.343556" elapsed="0.004421"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:38.343303" elapsed="0.004743"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:38.342446" elapsed="0.005643"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:38.348334" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:38.354342" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:38.349331" elapsed="0.005161">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:38.349093" elapsed="0.005661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:38.348804" elapsed="0.006124">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:38.330192" elapsed="0.024958">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:38.314341" elapsed="0.041001">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:40.358061" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:40.357153" elapsed="0.000972"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:40.358821" elapsed="0.000439"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:40.358291" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:40.358249" elapsed="0.001139"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:40.380807" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:40.381141" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:40.381337" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:40.372992" elapsed="0.008395"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:40.382169" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:40.381541" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:40.386790" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:40.382576" elapsed="0.004344"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:40.382327" elapsed="0.004663"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:40.381503" elapsed="0.005530"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:40.387278" elapsed="0.000334"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:40.392725" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:40.388273" elapsed="0.004725">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:40.388035" elapsed="0.005112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:40.387748" elapsed="0.005522">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:40.372141" elapsed="0.021326">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:40.356251" elapsed="0.037406">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:42.396236" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:42.395388" 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-09-12T23:17:42.397021" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:42.396468" elapsed="0.001040"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:42.396426" elapsed="0.001131"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:42.421484" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:42.421805" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:42.422108" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:42.411545" 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-09-12T23:17:42.422947" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:42.422322" elapsed="0.000739"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:42.427524" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:42.423358" elapsed="0.004379"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:42.423109" elapsed="0.004701"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:42.422283" elapsed="0.005600"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:42.428137" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:42.433560" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:42.429134" elapsed="0.004595">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:42.428890" elapsed="0.005013">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:42.428581" elapsed="0.005447">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:42.410708" elapsed="0.023513">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:42.394528" elapsed="0.039884">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:44.437025" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:44.436180" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:44.437783" elapsed="0.000436"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:44.437254" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:44.437213" elapsed="0.001136"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:44.462185" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:44.462461" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:44.462771" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:44.451698" elapsed="0.011128"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:44.463910" elapsed="0.000063"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:44.463014" elapsed="0.001026"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:44.468551" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:44.464346" elapsed="0.004309"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:44.464088" elapsed="0.004663"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:44.462975" elapsed="0.005823"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:44.469075" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:44.475019" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:44.470080" elapsed="0.005089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:44.469803" elapsed="0.005510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:44.469521" elapsed="0.005915">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:44.450891" elapsed="0.024744">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:44.435332" elapsed="0.040554">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:46.478402" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:46.477556" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:46.479191" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:46.478631" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:46.478588" elapsed="0.001165"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:46.501090" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:46.501457" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:46.501652" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:46.493227" elapsed="0.008478"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:46.502488" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:46.501919" elapsed="0.000684"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:46.507109" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:46.502946" elapsed="0.004265"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:46.502650" elapsed="0.004629"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:46.501879" elapsed="0.005446"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:46.507572" elapsed="0.000386"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:46.513004" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:46.508558" elapsed="0.004593">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:46.508321" elapsed="0.004972">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:46.508068" elapsed="0.005347">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:46.492366" elapsed="0.021244">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:46.476701" elapsed="0.037122">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:48.516471" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:48.515625" 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-09-12T23:17:48.517252" elapsed="0.000405"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:48.516702" elapsed="0.001057"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:48.516659" elapsed="0.001151"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:48.543029" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:48.543310" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:48.543527" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:48.531825" 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-09-12T23:17:48.544370" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:48.543767" elapsed="0.000716"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:48.548988" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:48.544802" elapsed="0.004288"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:48.544530" elapsed="0.004628"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:48.543698" elapsed="0.005503"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:48.549448" elapsed="0.000355"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:48.554887" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:48.550431" elapsed="0.004611">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:48.550195" elapsed="0.004989">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:48.549938" elapsed="0.005366">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:48.530991" elapsed="0.024505">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:48.514758" elapsed="0.041041">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:50.558387" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:50.557540" 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-09-12T23:17:50.559258" elapsed="0.000408"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:50.558612" elapsed="0.001132"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:50.558570" elapsed="0.001248"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:50.581243" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:50.581522" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:50.581716" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:50.573226" elapsed="0.008566"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:50.582549" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:50.581982" elapsed="0.000681"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:50.587213" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:50.583013" elapsed="0.004302"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:50.582711" elapsed="0.004673"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:50.581942" elapsed="0.005486"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:50.587673" elapsed="0.000384"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:50.593468" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:50.588657" elapsed="0.004978">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:50.588417" elapsed="0.005400">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:50.588165" elapsed="0.005842">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:50.572370" elapsed="0.021979">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:50.556665" elapsed="0.037890">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:52.597149" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:52.596273" elapsed="0.000940"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:52.597942" elapsed="0.000418"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:52.597383" elapsed="0.001057"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:52.597339" elapsed="0.001151"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:52.623278" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:52.623559" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:52.623752" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:52.612224" elapsed="0.011636"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:52.624613" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:52.624044" elapsed="0.000680"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:52.629350" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:52.625073" elapsed="0.004379"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:52.624795" elapsed="0.004725"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:52.624000" elapsed="0.005566"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:52.629863" elapsed="0.000336"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:52.635315" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:52.630820" elapsed="0.004640">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:52.630558" elapsed="0.005045">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:52.630307" elapsed="0.005556">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:52.611324" elapsed="0.024781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:52.595423" elapsed="0.040883">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:54.638868" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:54.638034" elapsed="0.000901"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:54.639630" elapsed="0.000480"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:54.639102" elapsed="0.001085"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:54.639061" elapsed="0.001176"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:54.663421" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:54.663815" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:54.664100" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:54.654000" elapsed="0.010154"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:54.664989" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:54.664324" elapsed="0.000779"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:54.669593" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:54.665404" elapsed="0.004288"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:54.665150" elapsed="0.004610"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:54.664283" elapsed="0.005543"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:54.670100" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:54.675456" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:54.671095" elapsed="0.004510">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:54.670818" elapsed="0.005076">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:54.670540" elapsed="0.005487">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:54.653135" elapsed="0.023097">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:54.637190" elapsed="0.039233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:56.679022" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:56.678175" elapsed="0.000909"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:56.679750" elapsed="0.000470"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:56.679250" elapsed="0.001047"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:56.679209" elapsed="0.001138"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:56.704747" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:56.705097" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:56.705291" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:56.693583" elapsed="0.011759"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:56.706126" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:56.705493" elapsed="0.000747"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:56.710702" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:56.706532" elapsed="0.004294"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:56.706287" elapsed="0.004635"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:56.705456" elapsed="0.005510"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:56.711211" elapsed="0.000327"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:56.717090" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:56.712185" elapsed="0.005152">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:56.711947" elapsed="0.005539">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:56.711645" elapsed="0.005963">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:56.692739" elapsed="0.025089">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:56.677314" elapsed="0.040737">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:17:58.720597" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:17:58.719769" elapsed="0.000890"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:17:58.721374" elapsed="0.000403"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:58.720872" elapsed="0.001026"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:58.720782" elapsed="0.001168"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:17:58.743446" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:17:58.743723" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:17:58.743970" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:17:58.735328" elapsed="0.008696"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:17:58.744752" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:17:58.744177" elapsed="0.000732"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:17:58.749428" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:17:58.745240" elapsed="0.004372"/>
</kw>
<status status="PASS" start="2026-09-12T23:17:58.744965" elapsed="0.004719"/>
</branch>
<status status="PASS" start="2026-09-12T23:17:58.744140" elapsed="0.005587"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:17:58.750017" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:17:58.755325" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:17:58.750994" elapsed="0.004476">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:17:58.750711" elapsed="0.004903">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:17:58.750458" elapsed="0.005280">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:17:58.734471" elapsed="0.021511">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:17:58.718976" elapsed="0.037202">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:00.758647" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:00.757812" 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-09-12T23:18:00.759449" elapsed="0.000450"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:00.758915" elapsed="0.001062"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:00.758832" elapsed="0.001194"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:00.784187" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:00.784466" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:00.784754" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:00.773666" elapsed="0.011142"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:00.785578" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:00.785017" elapsed="0.000674"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:00.790117" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:00.786030" elapsed="0.004191"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:00.785738" elapsed="0.004552"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:00.784978" elapsed="0.005355"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:00.790579" elapsed="0.000378"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:00.795922" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:00.791555" elapsed="0.004515">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:00.791317" elapsed="0.004897">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:00.791065" elapsed="0.005288">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:00.772818" elapsed="0.023747">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:00.757031" elapsed="0.039726">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:02.799497" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:02.798577" elapsed="0.000985"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:02.800323" elapsed="0.000429"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:02.799738" elapsed="0.001149"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:02.799695" elapsed="0.001249"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:02.826665" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:02.827157" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:02.827370" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:02.815624" elapsed="0.011801"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:02.828464" elapsed="0.000056"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:02.827593" elapsed="0.000994"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:02.836604" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:02.828964" elapsed="0.007761"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:02.828638" elapsed="0.008164"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:02.827552" elapsed="0.009367"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:02.837210" elapsed="0.000358"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:02.843187" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:02.838264" elapsed="0.005079">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:02.838006" elapsed="0.005490">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:02.837683" elapsed="0.005943">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:02.814722" elapsed="0.029160">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:02.797650" elapsed="0.046440">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:04.846752" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:04.845944" elapsed="0.000871"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:04.847690" elapsed="0.000509"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:04.847103" elapsed="0.001176"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:04.847033" elapsed="0.001297"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:04.876321" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:04.876602" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:04.876795" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:04.861701" elapsed="0.015201"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:04.877637" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:04.877064" elapsed="0.000688"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:04.882340" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:04.878142" elapsed="0.004302"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:04.877800" elapsed="0.004713"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:04.877026" elapsed="0.005530"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:04.882803" elapsed="0.000418"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:04.888353" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:04.883824" elapsed="0.004678">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:04.883587" elapsed="0.005056">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:04.883332" elapsed="0.005433">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:04.860897" elapsed="0.028112">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:04.845052" elapsed="0.044233">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:06.891798" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:06.891007" elapsed="0.000884"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:06.892581" elapsed="0.000457"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:06.892083" elapsed="0.001032"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:06.892041" elapsed="0.001123"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:06.916939" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:06.917221" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:06.917434" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:06.906965" elapsed="0.010521"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:06.918258" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:06.917642" elapsed="0.000728"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:06.922787" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:06.918664" elapsed="0.004284"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:06.918416" elapsed="0.004602"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:06.917605" elapsed="0.005458"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:06.923310" elapsed="0.000325"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:06.928697" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:06.924287" elapsed="0.004591">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:06.924047" elapsed="0.005000">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:06.923743" elapsed="0.005429">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:06.906104" elapsed="0.023359">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:06.890177" elapsed="0.039482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:08.932210" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:08.931356" elapsed="0.000918"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:08.932999" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:08.932442" elapsed="0.001045"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:08.932400" elapsed="0.001137"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:08.957099" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:08.957384" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:08.957577" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:08.946886" elapsed="0.010743"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:08.958408" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:08.957786" elapsed="0.000734"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:08.963086" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:08.958817" elapsed="0.004372"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:08.958568" elapsed="0.004689"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:08.957747" elapsed="0.005556"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:08.963549" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:08.969540" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:08.964540" elapsed="0.005147">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:08.964300" elapsed="0.005531">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:08.964045" elapsed="0.006060">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:08.946047" elapsed="0.024267">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:08.930503" elapsed="0.040006">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:10.973167" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:10.972216" elapsed="0.001015"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:10.973955" elapsed="0.000412"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:10.973401" elapsed="0.001043"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:10.973359" elapsed="0.001135"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:10.999720" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:11.000072" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:11.000270" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:10.988351" elapsed="0.011970"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:11.001110" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:11.000480" elapsed="0.000742"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:11.005676" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:11.001520" elapsed="0.004258"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:11.001269" elapsed="0.004609"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:11.000441" elapsed="0.005484"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:11.006192" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:11.011557" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:11.007179" elapsed="0.004525">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:11.006915" elapsed="0.005074">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:11.006631" elapsed="0.005492">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:10.987340" elapsed="0.024981">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:10.971373" elapsed="0.041140">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:13.015168" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:13.014318" 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-09-12T23:18:13.015940" elapsed="0.000437"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:13.015403" elapsed="0.001051"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:13.015360" elapsed="0.001145"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:13.040894" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:13.041203" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:13.041421" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:13.030371" elapsed="0.011103"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:13.042265" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:13.041633" elapsed="0.000745"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:13.046831" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:13.042675" elapsed="0.004311"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:13.042426" elapsed="0.004629"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:13.041592" elapsed="0.005507"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:13.047347" elapsed="0.000330"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:13.052701" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:13.048334" elapsed="0.004661">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:13.048092" elapsed="0.005052">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:13.047786" elapsed="0.005482">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:13.029508" elapsed="0.023957">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:13.013435" elapsed="0.040292">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:15.056262" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:15.055423" 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-09-12T23:18:15.057044" elapsed="0.000410"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:15.056491" elapsed="0.001041"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:15.056449" elapsed="0.001133"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:15.082056" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:15.082340" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:15.082533" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:15.070971" elapsed="0.011614"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:15.083382" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:15.082744" elapsed="0.000750"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:15.088009" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:15.083789" elapsed="0.004423"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:15.083542" elapsed="0.004745"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:15.082705" elapsed="0.005627"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:15.088581" elapsed="0.000365"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:15.094417" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:15.089571" elapsed="0.004993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:15.089329" elapsed="0.005382">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:15.089073" elapsed="0.005793">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:15.070133" elapsed="0.024956">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:15.054570" elapsed="0.040714">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:17.097933" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:17.097095" elapsed="0.000934"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:17.098712" elapsed="0.000462"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:17.098215" elapsed="0.001037"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:17.098172" elapsed="0.001131"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:17.123152" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:17.123447" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:17.123741" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:17.112744" elapsed="0.011051"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:17.124630" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:17.124019" elapsed="0.000723"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:17.129372" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:17.125128" elapsed="0.004346"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:17.124791" elapsed="0.004751"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:17.123956" elapsed="0.005631"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:17.129865" elapsed="0.000366"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:17.135317" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:17.130872" elapsed="0.004592">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:17.130599" elapsed="0.005010">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:17.130340" elapsed="0.005395">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:17.111917" elapsed="0.024048">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:17.096191" elapsed="0.039993">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:19.138717" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:19.137910" elapsed="0.000871"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:19.139502" elapsed="0.000443"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:19.138978" elapsed="0.001063"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:19.138934" elapsed="0.001160"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:19.164543" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:19.164963" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:19.165214" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:19.153910" elapsed="0.011356"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:19.166044" elapsed="0.000052"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:19.165424" elapsed="0.000735"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:19.170596" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:19.166456" elapsed="0.004242"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:19.166207" elapsed="0.004559"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:19.165385" elapsed="0.005426"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:19.171109" elapsed="0.000333"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:19.176555" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:19.172169" elapsed="0.004535">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:19.171904" elapsed="0.004980">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:19.171609" elapsed="0.005408">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:19.153070" elapsed="0.024167">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:19.137085" elapsed="0.040344">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:21.180068" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:21.179223" 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-09-12T23:18:21.180801" elapsed="0.000463"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:21.180300" elapsed="0.001042"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:21.180258" elapsed="0.001134"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:21.203779" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:21.204126" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:21.204323" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:21.194754" elapsed="0.009623"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:21.205163" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:21.204534" elapsed="0.000743"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:21.209870" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:21.205583" elapsed="0.004395"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:21.205324" elapsed="0.004744"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:21.204495" elapsed="0.005620"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:21.210364" elapsed="0.000332"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:21.216240" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:21.211364" elapsed="0.005028">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:21.211116" elapsed="0.005420">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:21.210803" elapsed="0.005857">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:21.193922" elapsed="0.022964">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:21.178369" elapsed="0.038819">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:23.219778" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:23.218960" 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-09-12T23:18:23.220571" elapsed="0.000439"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:23.220044" elapsed="0.001064"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:23.220002" elapsed="0.001159"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:23.243784" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:23.244129" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:23.244324" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:23.234592" elapsed="0.009783"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:23.245176" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:23.244533" elapsed="0.000756"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:23.249782" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:23.245594" elapsed="0.004324"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:23.245336" elapsed="0.004651"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:23.244495" elapsed="0.005537"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:23.250400" elapsed="0.000328"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:23.255745" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:23.251382" elapsed="0.004547">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:23.251145" elapsed="0.004952">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:23.250865" elapsed="0.005357">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:23.233728" elapsed="0.022781">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:23.218139" elapsed="0.038565">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Check Device status" owner="NetconfCallHome">
<kw name="Create List" owner="BuiltIn">
<msg time="2026-09-12T23:18:25.258605" level="INFO">@{expected_values} = [ "unique-id":"netopeer2" | "device-status":"FAILED_NOT_ALLOWED" ]</msg>
<var>@{expected_values}</var>
<arg>"unique-id":"${id}"</arg>
<arg>"device-status":"${status}"</arg>
<doc>Returns a list containing given items.</doc>
<status status="PASS" start="2026-09-12T23:18:25.258056" elapsed="0.000595"/>
</kw>
<if>
<branch type="IF" condition="'${status}'=='FAILED_NOT_ALLOWED' or '${status}'=='FAILED_AUTH_FAILURE'">
<kw name="Remove Values From List" owner="Collections">
<arg>${expected_values}</arg>
<arg>"unique-id":"${id}"</arg>
<doc>Removes all occurrences of given ``values`` from ``list``.</doc>
<status status="PASS" start="2026-09-12T23:18:25.259135" elapsed="0.000267"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:25.258765" elapsed="0.000687"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:25.258736" elapsed="0.000750"/>
</if>
<kw name="Check For Elements At URI" owner="Utils">
<kw name="GET On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:25.277230" level="INFO">GET Request : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 path_url=/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 headers={'User-Agent': 'python-requests/2.34.2', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'Connection': 'keep-alive', 'Cookie': 'JSESSIONID=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:25.277431" level="INFO">GET Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server?content=nonconfig 
 status=200, reason=OK 
 headers={'Cache-Control': 'no-cache', 'Content-Type': 'application/yang-data+json', 'Content-Length': '608'} 
 body={"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}} 
 </msg>
<msg time="2026-09-12T23:18:25.277567" level="INFO">${resp} = &lt;Response [200]&gt;</msg>
<var>${resp}</var>
<arg>${session}</arg>
<arg>url=${uri}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a GET request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:25.268288" elapsed="0.009311"/>
</kw>
<if>
<branch type="IF" condition="&quot;${pretty_print_json}&quot; == &quot;True&quot;">
<kw name="Log Content" owner="Utils">
<arg>${resp.text}</arg>
<status status="NOT RUN" start="2026-09-12T23:18:25.278082" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-12T23:18:25.277699" elapsed="0.000473"/>
</branch>
<branch type="ELSE">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:25.280953" level="INFO">{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}</msg>
<arg>${resp.text}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:25.278363" elapsed="0.002654"/>
</kw>
<status status="PASS" start="2026-09-12T23:18:25.278201" elapsed="0.002858"/>
</branch>
<status status="PASS" start="2026-09-12T23:18:25.277674" elapsed="0.003427"/>
</if>
<kw name="Status Should Be" owner="RequestsLibrary">
<arg>200</arg>
<arg>${resp}</arg>
<doc>Fails if response status code is different than the expected.</doc>
<status status="PASS" start="2026-09-12T23:18:25.281256" elapsed="0.000208"/>
</kw>
<for flavor="IN">
<iter>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:25.284598" level="FAIL">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>${resp.text}</arg>
<arg>${i}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:25.281865" elapsed="0.002831">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<var name="${i}">"device-status":"FAILED_NOT_ALLOWED"</var>
<status status="FAIL" start="2026-09-12T23:18:25.281693" elapsed="0.003093">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</iter>
<var>${i}</var>
<value>@{elements}</value>
<status status="FAIL" start="2026-09-12T23:18:25.281533" elapsed="0.003417">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</for>
<arg>${device_status}</arg>
<arg>${expected_values}</arg>
<doc>A GET is made at the supplied ${URI} and every item in the list of
${elements} is verified to exist in the response</doc>
<status status="FAIL" start="2026-09-12T23:18:25.267734" elapsed="0.017346">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Checks the operational device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:25.257450" elapsed="0.027768">'{"odl-netconf-callhome-server:netconf-callhome-server":{"allowed-devices":{"device":[{"unique-id":"netopeer2","device-status":"DISCONNECTED","ssh-client-params":{"host-key":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<msg time="2026-09-12T23:18:25.285333" 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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</msg>
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>FAILED_NOT_ALLOWED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="FAIL" start="2026-09-12T23:16:53.418312" elapsed="91.867154">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Run Keyword And Expect Error</arg>
<arg>*</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:25.285690" elapsed="0.000028"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:25.286718" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:18:25.574430" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:18:25.574753" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:18:25.574888" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:18:25.575031" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:25.286501" elapsed="0.288581"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:25.576162" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:25.575514" elapsed="0.000733"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:25.576894" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:18:25.880116" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:18:25.880446" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:18:25.880536" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:18:25.880618" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:25.576528" elapsed="0.304137"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:25.881530" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:18:25.940578" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:25.940813" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:18:25.940956" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:18:25.941042" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:25.881132" elapsed="0.059953"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:25.941609" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:18:25.994880" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:25.941410" elapsed="0.053604"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:26.009978" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:26.010073" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=204, reason=No Content 
 headers={} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:26.010286" level="INFO">${resp} = &lt;Response [204]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:25.995437" elapsed="0.014901"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:26.018964" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0gmh88lz1x9em1vsjnyawd011i5.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:26.019243" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:18:26.019446" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:26.010626" elapsed="0.008874"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:18:25.286120" elapsed="0.733520"/>
</kw>
<doc>A Rogue Device will fail to callhome and wont be able to mount because the keys are not added in whitelist.
FAILED_NOT_ALLOWED should be the device status.</doc>
<status status="FAIL" start="2026-09-12T23:16:52.705547" elapsed="93.314188">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":"AAAAB3NzaC1yc2EAAAADAQABAAABAQCi48zKBBpx+IwaA6k0Cd2TMA5T/o4jBLj4T1+Ho93ztjKA8M85OBpEE2Li2QGchSuLCW0dBu9ibr7Nv3sbWE0AZXoDIYkT1AJnv/tXDXm7sx8Fdjh7XxDfdcFsT6BdBpGIwxTNNGB7nlZ6iRPD6SHct1ILC06MLAgD/G93FnRVimndZoFcxbsgD6D5s2S+POhMxFgTY9C8nxuIzEi3D76nXbOkcHlG1E+RrC7P3baK9x8EPvi6xuO7Ik5FNshNgt6nb5dPnSIj2q3jPJdrCbeRkEzDtHaINbww3n7C/QYeIN4vLtjazvfFM78m2mWsSUwC9dUfCjrYBhYGIVVAUR0n","credentials":{"username":"root","passwords":["root"]}}}]}}}' does not contain '"device-status":"FAILED_NOT_ALLOWED"'</status>
</test>
<test id="s1-s1-t7" name="CallHome over TLS with correct certificate and key" line="131">
<kw name="Test Setup" owner="NetconfCallHome" type="SETUP">
<kw name="Create Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:26.023409" level="INFO">Creating Session using : alias=session, url=http://10.30.171.31:8181, headers={},                     cookies={}, auth=&lt;requests.auth.HTTPBasicAuth object at 0x7b91e6a00250&gt;, timeout=None, proxies=None, verify=False,                     debug=0 </msg>
<arg>session</arg>
<arg>http://${ODL_SYSTEM_IP}:${RESTCONFPORT}</arg>
<arg>auth=${AUTH}</arg>
<doc>Create Session: create a HTTP session to a server</doc>
<status status="PASS" start="2026-09-12T23:18:26.022800" elapsed="0.000890"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.024214" level="INFO">Executing command 'rm -rf ./configuration-files &amp;&amp; mkdir configuration-files'.</msg>
<msg time="2026-09-12T23:18:26.042351" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files &amp;&amp; mkdir configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.023999" elapsed="0.018471"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.042985" level="INFO">Executing command 'ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key'.</msg>
<msg time="2026-09-12T23:18:26.246884" level="INFO">Command exited with return code 0.</msg>
<arg>ssh-keygen -q -t rsa -b 2048 -N '' -m pem -f ./configuration-files/ssh_host_rsa_key</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.042750" elapsed="0.204286"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.247615" level="INFO">Executing command 'cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}''.</msg>
<msg time="2026-09-12T23:18:26.299164" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.299391" level="INFO">${public_key} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC9LUc7yGKcL1bj9f41FI1go2qVkS0oWrjBsppmZ9tFl5YaJkuHeuDEXMZPcH7B346c446SbDE+yz8w9jNurY7pozLVJbovsRrpZrJG3SeDQsEEvrurvumFhmzxV1hn/G8XmMMhLLq7uUE4ZT9NlQT4Rx3nP/9UsWSWz8mjK9VT...</msg>
<var>${public_key}</var>
<arg>cat configuration-files/ssh_host_rsa_key.pub | awk '{print $2}'</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.247388" elapsed="0.052056"/>
</kw>
<kw name="Set Test Variable" owner="BuiltIn">
<msg time="2026-09-12T23:18:26.307880" level="INFO">${NETOPEER_PUB_KEY} = AAAAB3NzaC1yc2EAAAADAQABAAABAQC9LUc7yGKcL1bj9f41FI1go2qVkS0oWrjBsppmZ9tFl5YaJkuHeuDEXMZPcH7B346c446SbDE+yz8w9jNurY7pozLVJbovsRrpZrJG3SeDQsEEvrurvumFhmzxV1hn/G8XmMMhLLq7uUE4ZT9NlQT4Rx3nP/9UsWSWz8mjK9VT...</msg>
<arg>${NETOPEER_PUB_KEY}</arg>
<arg>${public_key}</arg>
<doc>Makes a variable available everywhere within the scope of the current test.</doc>
<status status="PASS" start="2026-09-12T23:18:26.299799" elapsed="0.008181"/>
</kw>
<doc>Opens session towards ODL controller, set configuration folder, generates a new host key for the container</doc>
<status status="PASS" start="2026-09-12T23:18:26.022246" elapsed="0.285877"/>
</kw>
<kw name="Apply TLS-based Call-Home configuration" owner="NetconfCallHome">
<kw name="Generate certificates for TLS configuration" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.309991" level="INFO">Executing command 'rm -rf ./certs &amp;&amp; mkdir ./certs'.</msg>
<msg time="2026-09-12T23:18:26.350605" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.350793" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>rm -rf ./certs &amp;&amp; mkdir ./certs</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.309763" elapsed="0.041113"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.398665" 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-09-12T23:18:26.351183" elapsed="0.047707"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.399402" level="INFO">Executing command 'openssl genrsa -out ./certs/ca.key 2048'.</msg>
<msg time="2026-09-12T23:18:26.543600" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.543905" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl genrsa -out ./certs/ca.key 2048</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.399205" elapsed="0.144759"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.544583" level="INFO">Executing command 'openssl req -x509 -new -extensions v3_ca -nodes -key ./certs/ca.key -sha256 -days 365 -subj "/C=US/ST=CA/L=Netopeer/O=netopeerCA/CN=netopeerCA" -out ./certs/ca.pem'.</msg>
<msg time="2026-09-12T23:18:26.601142" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.601341" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl req -x509 -new -extensions v3_ca -nodes -key ./certs/ca.key -sha256 -days 365 -subj "/C=US/ST=CA/L=Netopeer/O=netopeerCA/CN=netopeerCA" -out ./certs/ca.pem</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.544335" elapsed="0.057054"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.601917" level="INFO">Executing command 'openssl genrsa -out ./certs/server.key 2048'.</msg>
<msg time="2026-09-12T23:18:26.756438" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.756654" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl genrsa -out ./certs/server.key 2048</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.601679" elapsed="0.155025"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.757307" level="INFO">Executing command 'openssl req -new -sha256 -key ./certs/server.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-server" -out ./certs/server.csr'.</msg>
<msg time="2026-09-12T23:18:26.821393" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.821594" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl req -new -sha256 -key ./certs/server.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-server" -out ./certs/server.csr</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.757050" elapsed="0.064594"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.822214" level="INFO">Executing command 'openssl x509 -req -in ./certs/server.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/server.crt -days 365 -sha256'.</msg>
<msg time="2026-09-12T23:18:26.891992" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.892218" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl x509 -req -in ./certs/server.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/server.crt -days 365 -sha256</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.821982" elapsed="0.070288"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.892793" level="INFO">Executing command 'openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub'.</msg>
<msg time="2026-09-12T23:18:26.950893" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:26.951349" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl rsa -in ./certs/server.key -pubout &gt; ./certs/server.pub</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.892592" elapsed="0.058813"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:26.952275" level="INFO">Executing command 'openssl genrsa -out ./certs/client.key 2048'.</msg>
<msg time="2026-09-12T23:18:27.364363" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:27.364632" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl genrsa -out ./certs/client.key 2048</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:26.951920" elapsed="0.412763"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.365455" level="INFO">Executing command 'openssl req -new -sha256 -key ./certs/client.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-client" -out ./certs/client.csr'.</msg>
<msg time="2026-09-12T23:18:27.415165" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:27.415359" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl req -new -sha256 -key ./certs/client.key -subj "/C=US/ST=CA/L=Netopeer/O=Netopeer2/CN=netopeer2-client" -out ./certs/client.csr</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:27.365142" elapsed="0.050266"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.415936" level="INFO">Executing command 'openssl x509 -req -in ./certs/client.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/client.crt -days 1024 -sha256'.</msg>
<msg time="2026-09-12T23:18:27.477100" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:27.477373" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>openssl x509 -req -in ./certs/client.csr -CA ./certs/ca.pem -CAkey ./certs/ca.key -CAcreateserial -extfile x509_v3.cfg -out ./certs/client.crt -days 1024 -sha256</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:27.415695" elapsed="0.061727"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.477950" level="INFO">Executing command 'mv ./certs ./configuration-files/certs'.</msg>
<msg time="2026-09-12T23:18:27.542053" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:27.542511" level="INFO">${stdout} = </msg>
<var>${stdout}</var>
<arg>mv ./certs ./configuration-files/certs</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:27.477707" elapsed="0.064859"/>
</kw>
<doc>Generates certificates for 2-way TLS authentication (ca, server, client)</doc>
<status status="PASS" start="2026-09-12T23:18:26.309197" elapsed="1.233575"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.589587" 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-09-12T23:18:27.543295" elapsed="0.046417"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.600523" 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-09-12T23:18:27.590034" elapsed="0.010713"/>
</kw>
<kw name="Put File" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.609615" 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-09-12T23:18:27.601066" elapsed="0.008671"/>
</kw>
<doc>Upload netopeer2 configuration files needed for TLS transport</doc>
<status status="PASS" start="2026-09-12T23:18:26.308488" elapsed="1.301415"/>
</kw>
<kw name="Register keys and certificates in ODL controller" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.611525" level="INFO">Executing command 'cat ./configuration-files/certs/client.key'.</msg>
<msg time="2026-09-12T23:18:27.624162" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:27.624381" level="INFO">${pem-client-key} = -----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvfpWXn7FBn5u+
I06ueI0WpRY4c34RjZgZS+gnu49rCOvt2UrDWnV36l+FbWQYI9ZlU0uj0nBxORo+
IOlUryEMYSVdgp/Km4neLW27elPx6m8zvknwOSi6E5...</msg>
<msg time="2026-09-12T23:18:27.624466" level="INFO">${stderr} = </msg>
<var>${pem-client-key}</var>
<var>${stderr}</var>
<arg>cat ./configuration-files/certs/client.key</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:27.611190" elapsed="0.013318"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<msg time="2026-09-12T23:18:27.625161" 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-09-12T23:18:27.625443" level="INFO">${template} = {
    "input": {
        "key-credential": [
            {
                "key-id": "tls-device-key",
                "private-key": "{pem-client-key}",
                "passphrase": ""
            }...</msg>
<var>${template}</var>
<arg>${ADD_KEYSTORE_ENTRY_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="PASS" start="2026-09-12T23:18:27.624793" elapsed="0.000700"/>
</kw>
<kw name="Replace String" owner="String">
<msg time="2026-09-12T23:18:27.626341" 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-09-12T23:18:27.625799" elapsed="0.000595"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:27.676344" level="INFO">POST Request : url=http://10.30.171.31: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-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvfpWXn7FBn5u+
I06ueI0WpRY4c34RjZgZS+gnu49rCOvt2UrDWnV36l+FbWQYI9ZlU0uj0nBxORo+
IOlUryEMYSVdgp/Km4neLW27elPx6m8zvknwOSi6E5kw09fI0tr/mlOwDtoHjtFx
HYqlYMCkHYdEzcM+qyjPoRSul5lXL7sw8C53ABzHZQsrPxRXvPxgCKYm1M7EUSup
0ymJugspvEwDUUijT5XeCervdh12FoKp1ESRqv9zXmGD6dUx9C/vbQuD4BB5lkMH
evI32auCkaCRV8OhYGI7SPWnA/VRzJ9U6C5O9R4ydDgXOAkOyxoozdMjFR9V0JBH
7cW4HbE/AgMBAAECggEAH4PS51SlJ0y7UizS/1/krlFdKSwMUqijzL8l5KS4/5at
j5v64hQHjk5HcxWO6QregHmx1qx+xsZjYQ7V+AAvJiL368/+VAsUehKcZxNzqbjY
2WjtrDcHikrksrEISicbbtVO/Aneu4a5M+ADOumiDpbC6Ocujb186bRam3Pb9Jzw
cTLEmtGvnjuDJr5eJjTvEu4k00nIrUvwoRE4t1u2vYH0QRJRHnnKDOO5/Tv8WZq6
7m7q6FQwDnpYVTtnZyKHRyvAQmbEpzu+Gz+1ucmMzxsw38GN9fdXVO29eqH0ZLwT
zsBD4kKV+/7hP9EpbypILoWXlQCpOWTX2SIqZTtlGQKBgQDHJPmEJi5Jpk10GE51
hl5bzrVEwYwuIk2RiilhbyY1e1vv8Uasng6BLN8RANHr6Ejj7+CAqTTMRYyn23P4
GRrYPx2GDog7c5Sos9OtBEUN/D174IxG86hAf9uD1cujy6tGFCHCYF0T7kkVbyko
Dtn04+0qUErST/liQR5eu6y0KwKBgQDhmRYZ7zvKj4vYt1SpEoPndenSsVZgIuGx
M9SjTvgFxShPTSxBeKEPrKBFhMvg3NkzxJedulLSm2tMg/HFdm2HxG4/ZERidJA5
RO5mbYWjDqYbAxhokYAR+k+oO5mSQ8xJSm5xRYbUMyO7/kvNC8gBQH0ThqyrbPGg
AgY/3gPJPQKBgQC50q2lev8cKDsDxp6Hma84maSZmMTWU5nv4W0FhvKvWwGJ3qjk
78N3E8i+E/bN230QfEgPplQm/ArooqUO71YWTKae7bZ/SzV/SfWN73sENsekbP5Y
QopQTT4nQXr4x1Z1WNm7h7GypFm7z3Mm9ty4X2pxXmTC5G8/GKZfHV5k6wKBgQDF
+TnT+IVX9TCcNgYtePoYHPnc05MhOnskrn9j8ODm72W4cdjse5eb0bm0SB1Cb4yM
SXFkESate4Zl10RMLOlhw5ecOblpTTFjkIJFkMc9mJVcDxNUcJsbK7bLw8G5AZY8
mvzgmkr/3QD28OpEPpp9vsIEaKMOrMQ9zoj9cy+PYQKBgDfLPJmIuyNtu5grDwQA
mR+QPpA7PxMCRSloEdgP4eQOx5/wrK6OYXN3yZJvvwn3e/13Psw37a6ygDtxfrSV
Se9Ptm/d0iXw/nQpNb/IA6YbKFKRSNJw1gR7B+ZHCRwtQHAcQLzLXLbDgC3jDM4l
FeZ8QsQZKEvog8qJoBemB3K/
-----END PRIVATE KEY-----",
                "passphrase": ""
            }
        ]
    }
}
 
 </msg>
<msg time="2026-09-12T23:18:27.676669" level="INFO">POST Response : url=http://10.30.171.31:8181/rests/operations/netconf-keystore:add-keystore-entry 
 status=500, reason=Internal Server Error 
 headers={'Set-Cookie': 'JSESSIONID=node0fgcwtsingoz0wiuf17mup4116.node0; Path=/rests; HttpOnly, rememberMe=deleteMe; Path=/rests; Max-Age=0; Expires=Fri, 11-Sep-2026 23:18:27 GMT; SameSite=lax', 'Expires': 'Thu, 01 Jan 1970 00:00:00 GMT', 'Content-Type': 'application/yang-data+json', 'Content-Length': '302'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "operation-failed",
        "error-info": "Unhandled private key class org.bouncycastle.asn1.pkcs.PrivateKeyInfo",
        "error-message": "Failed to decode private key tls-device-key",
        "error-type": "application"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:18:27.676930" level="INFO">${resp} = &lt;Response [500]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_url}:add-keystore-entry</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:27.626659" elapsed="0.050324"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<msg time="2026-09-12T23:18:27.682307" level="FAIL">'[200, 201, 204]' does not contain '500'</msg>
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="FAIL" start="2026-09-12T23:18:27.677317" elapsed="0.005138">'[200, 201, 204]' does not contain '500'</status>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${client-key}</var>
<arg>client.key</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.682831" elapsed="0.000083"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${certificate-chain}</var>
<arg>client.crt</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.683236" elapsed="0.000046"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<var>${template}</var>
<arg>${ADD_PRIVATE_KEY_REQ}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.683598" elapsed="0.000040"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${template}</arg>
<arg>{client-key}</arg>
<arg>${client-key}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.683930" elapsed="0.000040"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${body}</arg>
<arg>{certificate-chain}</arg>
<arg>${certificate-chain}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.684258" elapsed="0.000038"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_url}:add-private-key</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.684540" elapsed="0.000037"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.684872" elapsed="0.000040"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${ca-certificate}</var>
<arg>ca.pem</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.685237" elapsed="0.000046"/>
</kw>
<kw name="Get certificate file content" owner="NetconfCallHome">
<var>${device-certificate}</var>
<arg>server.crt</arg>
<doc>Get certificate or key file content</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.685573" elapsed="0.000043"/>
</kw>
<kw name="Get File" owner="OperatingSystem">
<var>${template}</var>
<arg>${ADD_TRUSTED_CERTIFICATE}</arg>
<doc>Returns the contents of a specified file.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.685881" elapsed="0.000040"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${template}</arg>
<arg>{ca-certificate}</arg>
<arg>${ca-certificate}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.686194" elapsed="0.000038"/>
</kw>
<kw name="Replace String" owner="String">
<var>${body}</var>
<arg>${body}</arg>
<arg>{device-certificate}</arg>
<arg>${device-certificate}</arg>
<doc>Replaces ``search_for`` in the given ``string`` with ``replace_with``.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.686491" elapsed="0.000037"/>
</kw>
<kw name="POST On Session" owner="RequestsLibrary">
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_url}:add-trusted-certificate</arg>
<arg>data=${body}</arg>
<arg>headers=${HEADERS}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a POST request on a previously created HTTP Session.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.686763" elapsed="0.000038"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${ALLOWED_STATUS_CODES}</arg>
<arg>${resp.status_code}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.687097" elapsed="0.000059"/>
</kw>
<doc>Register pre-configured netopeer2 certificates and key in ODL-netconf keystore</doc>
<status status="FAIL" start="2026-09-12T23:18:27.610507" elapsed="0.076857">'[200, 201, 204]' does not contain '500'</status>
</kw>
<kw name="Register TLS call-home device in ODL controller" owner="NetconfCallHome">
<arg>netopeer2</arg>
<arg>tls-device-key</arg>
<arg>tls-device-certificate</arg>
<doc>Registration call-home device with TLS transport</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.687716" elapsed="0.000046"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose up -d</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.688051" elapsed="0.000041"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>90s</arg>
<arg>2s</arg>
<arg>NetconfCallHome.Check Device Status</arg>
<arg>CONNECTED</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.688431" elapsed="0.000040"/>
</kw>
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<arg>30s</arg>
<arg>2s</arg>
<arg>Utils.Check For Elements At URI</arg>
<arg>${mount_point_url}</arg>
<arg>${netconf_mount_expected_values}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="NOT RUN" start="2026-09-12T23:18:27.688748" elapsed="0.000038"/>
</kw>
<kw name="Test Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:27.690372" level="INFO">Executing command 'docker-compose logs'.</msg>
<msg time="2026-09-12T23:18:28.016798" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:18:28.017254" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:18:28.017347" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:18:28.017429" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose logs</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:27.690019" elapsed="0.327457"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-12T23:18:28.018664" level="INFO"/>
<arg>${stdout}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-12T23:18:28.017994" elapsed="0.000756"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:28.019447" level="INFO">Executing command 'docker-compose down'.</msg>
<msg time="2026-09-12T23:18:28.371121" level="INFO">Command exited with return code 1.</msg>
<msg time="2026-09-12T23:18:28.371535" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:18:28.371622" level="INFO">${stderr} = client version 1.21 is too old. Minimum supported API version is 1.40, please upgrade your client to a newer version</msg>
<msg time="2026-09-12T23:18:28.371700" level="INFO">${rc} = 1</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker-compose down</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:28.019065" elapsed="0.352680"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:28.372723" level="INFO">Executing command 'docker ps -a'.</msg>
<msg time="2026-09-12T23:18:28.444331" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:28.444786" level="INFO">${stdout} = CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES</msg>
<msg time="2026-09-12T23:18:28.444916" level="INFO">${stderr} = </msg>
<msg time="2026-09-12T23:18:28.444999" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>docker ps -a</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:28.372270" elapsed="0.072777"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:28.446078" level="INFO">Executing command 'rm -rf ./configuration-files'.</msg>
<msg time="2026-09-12T23:18:28.494964" level="INFO">Command exited with return code 0.</msg>
<arg>rm -rf ./configuration-files</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:28.445707" elapsed="0.049386"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:28.505466" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0fgcwtsingoz0wiuf17mup4116.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:28.505798" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '270'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/odl-netconf-callhome-server:netconf-callhome-server/allowed-devices",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:18:28.506027" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${whitelist}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:28.495410" elapsed="0.010667"/>
</kw>
<kw name="DELETE On Session" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:28.514373" level="INFO">DELETE Request : url=http://10.30.171.31: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=node0fgcwtsingoz0wiuf17mup4116.node0', 'Content-Length': '0', 'Authorization': 'Basic YWRtaW46YWRtaW4='} 
 body=None 
 </msg>
<msg time="2026-09-12T23:18:28.514616" level="INFO">DELETE Response : url=http://10.30.171.31:8181/rests/data/netconf-keystore:keystore 
 status=409, reason=Conflict 
 headers={'Content-Type': 'application/yang-data+json', 'Content-Length': '228'} 
 body={
  "errors": {
    "error": [
      {
        "error-tag": "data-missing",
        "error-message": "Data does not exist",
        "error-path": "/netconf-keystore:keystore",
        "error-type": "protocol"
      }
    ]
  }
} 
 </msg>
<msg time="2026-09-12T23:18:28.514822" level="INFO">${resp} = &lt;Response [409]&gt;</msg>
<var>${resp}</var>
<arg>session</arg>
<arg>url=${netconf_keystore_data_url}</arg>
<arg>expected_status=anything</arg>
<doc>Sends a DELETE request on a previously created HTTP Session.</doc>
<status status="PASS" start="2026-09-12T23:18:28.506391" elapsed="0.008516"/>
</kw>
<doc>Tears down the docker running netopeer and deletes entry from the whitelist.</doc>
<status status="PASS" start="2026-09-12T23:18:27.689409" elapsed="0.825649"/>
</kw>
<doc>Using correct certificate and key pair should result to successful mount. CONNECTED should be the device status.</doc>
<status status="FAIL" start="2026-09-12T23:18:26.020759" elapsed="2.494435">'[200, 201, 204]' does not contain '500'</status>
</test>
<kw name="Suite Teardown" owner="NetconfCallHome" type="TEARDOWN">
<kw name="Uninstall Docker Compose on tools system" owner="NetconfCallHome">
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-12T23:18:28.518333" level="INFO">Executing command 'pip uninstall docker-compose'.</msg>
<msg time="2026-09-12T23:18:29.292558" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-12T23:18:29.293121" level="INFO">${stdout} = </msg>
<msg time="2026-09-12T23:18:29.293267" level="INFO">${stderr} = WARNING: Skipping docker-compose as it is not installed.</msg>
<msg time="2026-09-12T23:18:29.293359" level="INFO">${rc} = 0</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<var>${rc}</var>
<arg>pip uninstall docker-compose</arg>
<arg>return_stdout=True</arg>
<arg>return_stderr=True</arg>
<arg>return_rc=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-12T23:18:28.517941" elapsed="0.775468"/>
</kw>
<doc>Uninstall docker-compose on tools system</doc>
<status status="PASS" start="2026-09-12T23:18:28.517517" elapsed="0.776134"/>
</kw>
<kw name="Delete All Sessions" owner="RequestsLibrary">
<msg time="2026-09-12T23:18:29.294430" level="INFO">Deleting All Sessions</msg>
<doc>Removes all the session objects</doc>
<status status="PASS" start="2026-09-12T23:18:29.294113" elapsed="0.001372"/>
</kw>
<kw name="Close All Connections" owner="SSHLibrary">
<doc>Closes all open connections.</doc>
<status status="PASS" start="2026-09-12T23:18:29.295819" elapsed="0.000850"/>
</kw>
<doc>Tearing down the setup.</doc>
<status status="PASS" start="2026-09-12T23:18:28.517005" elapsed="0.779785"/>
</kw>
<doc>Test suite to verify callhome functionality over SSH transport protocol. Registration in OpenDaylight
Controller happens via restconf interface. Netopeer2-server docker container plays a role of the
netconf device with call-home feature. Docker-compose file is used to configure netopeer2 docker
container(netconf configuration templates, host-key).</doc>
<status status="FAIL" start="2026-09-12T23:10:29.519960" elapsed="479.777001"/>
</suite>
<status status="FAIL" start="2026-09-12T23:10:29.483573" elapsed="479.816392"/>
</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>
